先寫一個簡單的文件1.c:

然后編譯兩個庫,一個不加 -g, 一個加:
gcc 1.c -c
gdb -shared -fpic -o lib1.so 1.o
cp 1.c 2.c
gcc -c -g 2.c
gcc -shared -fpic -o lib2.so 2.o
下面介紹幾種判斷的方法:
1. 使用 objdump

可以看出,對于使用 -g的庫, objdump --debugging會有很多 debug相關(guān)的信息輸出。對于 沒有加-g的庫,則沒有這樣的輸出。
也可用 readelf -w 或者 objdump -W
2.使用 gdb.

注意有輸出: Reading symbols from lib2.so.。.done.
對于 lib1.so,輸出為 Reading symbols from lib1.so.。.(no debugging symbols found)。..done.
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
Linux
+關(guān)注
關(guān)注
88文章
11760瀏覽量
219032 -
虛擬機(jī)
+關(guān)注
關(guān)注
1文章
972瀏覽量
30472
發(fā)布評論請先 登錄
相關(guān)推薦
熱點推薦
Xilinx庫文件的編譯
Library下拉表中選擇simprims_ver仿真庫,在查找范圍選項中選中“Xilnx\ise\verilog\src\simprims”目錄下的全部文件,單擊Compile按鈕進(jìn)行編譯
發(fā)表于 02-27 15:16
請問怎么判斷Keil編譯時用到的基礎(chǔ)庫名字?
怎么判斷Keil編譯時用到的基礎(chǔ)庫名字,在Linker選項里好像沒有體現(xiàn)的。include是-I中有,而庫的路徑怎么
發(fā)表于 10-19 08:42
gcc和Linux gcc 的常用選項
gcc的使用方法gcc 【選項】文件名gcc常用選項gcc-v: 查看gcc編譯器的版本,顯示gcc執(zhí)行時的詳細(xì)過程-oplease the
發(fā)表于 10-19 22:43
嵌入式Linux工具之GCC常用編譯選項
“-I dir”選項可以在頭文件的搜索路徑列表中添加 dir 目錄。由于 Linux 中頭文件都默認(rèn)放到了“/usr/include/”目錄下,因此,當(dāng)用戶希望添加放置在其他位置的頭
Linux程序的編寫、編譯、調(diào)試方法及make
只要知道其中的幾個就夠了. -o選項我們已經(jīng)知道 了,表示我們要求輸出的可執(zhí)行文件名. -c選項表示我們只要求編譯器輸出目標(biāo)代碼,而 不必要輸出可執(zhí)行
Linux中如何判斷文件夾是否存在并新建文件夾
本文檔的主要內(nèi)容詳細(xì)介紹的是Linux中如何判斷文件夾是否存在并新建文件夾vi文件免費下載。
發(fā)表于 01-17 08:00
?8次下載
gcc的使用方法以及Linux gcc 的常用選項
gcc的使用方法 gcc 【選項】文件名 gcc常用選項 gcc -v: 查看gcc編譯器的版本,顯示gcc執(zhí)行時的詳細(xì)過程 -ofile
Linux中的靜態(tài)庫和共享庫
庫是一個二進(jìn)制文件,包含的代碼可被程序調(diào)用。例如標(biāo)準(zhǔn)C庫、數(shù)學(xué)庫、線程庫等等。庫有源碼,可下載后
Linux交叉編譯選項與源碼與目標(biāo)文件分離
交叉編譯選項 編譯Linux,通常只需要運行 make menuconfig 配置要編譯的模塊,然后運行 make 。
linux驅(qū)動程序的編譯方法有哪兩種
Collection)或其他C/C++編譯器來編譯源代碼文件。這種方法較為原始,需要開發(fā)者手動指定編譯器
判斷Linux庫文件編譯時是否運用-g選項的方法
評論