Linux下查找一個函數(shù)在哪個庫文件中
1、默認狀態(tài)下,gcc并不搜索數(shù)學(xué)庫,-lm的意思是gcc需要搜索標準目錄下(本例中是/usr/lib目錄)名為libm.a的庫文件,從而找出需要的數(shù)學(xué)函數(shù),正確鏈接。
2、用man 3 printf 就可以看到頭文件。有時有些函數(shù)的查看需要不同的man庫,具體可以看一下 man man。
3、不過要使用上面的函數(shù)需要安裝但是需要先enable mbstring 擴展庫。 PHP中的另外一個函數(shù)iconv也是用來轉(zhuǎn)換字符串編碼的,與上函數(shù)功能相似。
4、find / -name 文件名\x0d\x0a\x0d\x0aLinux下find命令用法\x0d\x0a\x0d\x0a通過文件名查找法: \x0d\x0a這個方法說起來就和在WINDOWS下查找文件一樣容易理解了。
5、動態(tài)鏈接庫的安裝 生成動態(tài)鏈接庫后,一個很重要的操作是安裝,一般情況下,我們將庫文件放到系統(tǒng)默認的搜索路徑下,常用的有/lib, /usr/lib, /usr/local/lib 。將 動態(tài)鏈接庫放到這三個中任意個目錄都可以。
6、該數(shù)據(jù)庫包含本地所有的文件信息:最后一個是使用”whereis“命令搜索文件,但是只可以搜索linux系統(tǒng)中的可執(zhí)行文件。
如何在LINUX下查看一個.o文件里有哪些函數(shù)
1、nm可列出.o .a .so中的符號信息,包括諸如符號的值,符號類型及符號名稱等。所謂符號,通常指定義出的函數(shù),全局變量等等。
2、我們在寫Linux應(yīng)用程序時,有時候記不清某個系統(tǒng)函數(shù)的頭文件,往往要么百度,要么查源碼,這樣做都不方便,費時費力。其實,可以用一個命令搞定:man。
3、gcc 源文件名 -o 目標文件名 -Wall Eg:gcc c -o demo -Wall 運行 ./demo 就能看到打印了。
4、C++ 標準庫的文檔,可以在其鏡像點(http://gcc.gnu.org/mirrors.html)中下載。具體的路徑是:libstdc++doxygen/libstdc++-man-xxxxxx.tar.bz2,可找一個最新日期的下載。
Linux如何查看so中函數(shù)名
1、nm可列出.o .a .so中的符號信息,包括諸如符號的值,符號類型及符號名稱等。所謂符號,通常指定義出的函數(shù),全局變量等等。
2、/.vimrc文件中 set tags=/home/money/sda8/6232/tags 如果要在代碼中實時跟蹤,則光標移動到函數(shù)名上,使用CTRL+]鍵,按CTRL+t可以返回。如果要跟蹤系統(tǒng)函數(shù),使用shift+K可以自動跳轉(zhuǎn)道光標所在函數(shù)的手冊。
3、你拿到一個libABC.so庫,卻沒有頭文件,這時候你該如何知道這個庫中定義了哪些函數(shù)呢?Linux/Mac提供了一個神奇的命令: nm 。
4、nm查看共享庫so文件中導(dǎo)出函數(shù)列表 查看so文件中的導(dǎo)出函數(shù)表;nm -D mylib.so 列出所有導(dǎo)出的函數(shù),包括mylib.so靜態(tài)鏈接的庫中的那些導(dǎo)出函數(shù)。
5、對于動太鏈接在程序執(zhí)行過程由ld.so 通過變量名去 動態(tài)的鏈接到某些庫的指定函數(shù)。動態(tài)鏈接的符號名不可剔除。說到底就是二進制程序如果包含變量名,就會顯示。
如何查看linux動態(tài)庫中包含哪些函數(shù)
1、nm可列出.o .a .so中的符號信息,包括諸如符號的值,符號類型及符號名稱等。所謂符號,通常指定義出的函數(shù),全局變量等等。
2、系統(tǒng)中的配置文件/etc/ld.so.conf便是動態(tài)鏈接庫的搜索路徑配置文件。在這個文件內(nèi)存放著可以被Linux共享的動態(tài)鏈接庫所在目錄的名字(系統(tǒng)默認的/lib, /usr/lib除外)。 多個目錄之間可以使用空格,換行符進行隔開。
3、在dlopen()函數(shù)以指定模式打開指定的動態(tài)鏈接庫文件,并返回一個句柄給dlsym()的調(diào)用進程。使用dlclose()來卸載打開的庫。
4、ldd [選項]... 文件...描述 ldd 輸出在命令行上指定的每個程序或共享庫需要的共享庫。
5、查看靜態(tài)庫:ar -tv test.a 解壓靜態(tài)庫:ar -x test.a 查看程序依賴的動態(tài)庫:readelf -a xxx|grep library 如:可以看到,下面的交叉程序hello執(zhí)行依賴于如下兩個動態(tài)庫。