原文:linux中[gcc -shared -fPIC]的含義

linux在gcc編譯時加上 shared 參數時,目的是使源碼編譯成動態庫 .so 文件 而 fPIC的作用是 告知編譯器 生成位置無關代碼 編譯產生的代碼沒有絕對位置,只有相對位置 從而可以在任意地方調用生成的動態庫。 示例: gcc fun.c shared fPIC o libfun.so 如果代碼沒有錯誤,則可以在當前路徑下生成libfunc.so文件 此時此動態庫還不能被正確的鏈接上 ...

2021-04-20 21:02 0 329 推薦指數:

查看詳情

GCC生成動態鏈接庫(.so文件):-shared和-fPIC選項

Linux 下動態鏈接庫(shared object file,共享對象文件)的文件后綴為.so,它是一種特殊的目標文件(object file),可以在程序運行時被加載(鏈接)進來。使用動態鏈接庫的優點是:程序的可執行文件更小,便於程序的模塊化以及更新,同時,有效內存的使用效率更高。 GCC ...

Sun Jun 16 19:18:00 CST 2019 0 3280
linux下buffer和cache的異同及freeshared含義

1.buffer和cache的異同 linux下使用free -m 時 可以看到buffers和cached 這二者經常被混為一談。 相同點:二者具備改善系統 I/O 吞吐量的能力 cache改善系統性能主要原因是數據訪問的局部性:一般情況下應用程序在一段時間內操作 ...

Mon Dec 20 03:52:00 CST 2021 0 787
gcc -fPIC編譯選項分析

1、-fPIC 作用於編譯階段,在編譯動態庫時(.so文件)告訴編譯器產生與位置無關代碼(Position-Independent Code),若未指定-fPIC選項編譯.so文件,則在加載動態庫時需進行重定向。 2、64位編譯器下編譯生成動態庫時,出現以下錯誤: /usr/lib64/gcc ...

Wed Aug 31 02:36:00 CST 2016 0 2896
Linux的EAGAIN含義

Linux環境下開發經常會碰到很多錯誤(設置errno),其中EAGAIN是其中比較常見的一個錯誤(比如用在非阻塞操作)。 linux下使用write\send發送數據報 EAGAIN : Resource temporarily unavailable 錯 首先是我把套接字 ...

Thu Feb 28 00:36:00 CST 2013 0 29079
linux$#,$0,$1,$2,$@,$*,$$,$?的含義

$# 是傳給腳本的參數個數$0 是腳本本身的文件名$1 是腳本后接的第一個參數$2 是腳本后接的第二個參數$@ 是傳給腳本的所有參數列表,"$1" "$2" "$3" … "$n"$* 是以一個單字符 ...

Thu Nov 23 01:05:00 CST 2017 0 4239
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM