0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

判斷Linux庫文件編譯時(shí)是否運(yùn)用-g選項(xiàng)的方法

如意 ? 來源:CSDN ? 作者:CaspianSea ? 2020-06-22 08:40 ? 次閱讀

先寫一個(gè)簡單的文件1.c:

判斷Linux庫文件編譯時(shí)是否運(yùn)用-g選項(xiàng)的方法

然后編譯兩個(gè)庫,一個(gè)不加 -g, 一個(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

判斷Linux庫文件編譯時(shí)是否運(yùn)用-g選項(xiàng)的方法

可以看出,對于使用 -g的庫, objdump --debugging會(huì)有很多 debug相關(guān)的信息輸出。對于 沒有加-g的庫,則沒有這樣的輸出。

也可用 readelf -w 或者 objdump -W

2.使用 gdb.

判斷Linux庫文件編譯時(shí)是否運(yùn)用-g選項(xiàng)的方法

注意有輸出: 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)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11157

    瀏覽量

    208457
  • 虛擬機(jī)
    +關(guān)注

    關(guān)注

    1

    文章

    897

    瀏覽量

    27959
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Linux編程】如何使用gcc編譯源代碼時(shí)輸出map文件

    Linux編程】如何使用gcc編譯源代碼時(shí)輸出map文件
    的頭像 發(fā)表于 08-15 14:08 ?7897次閱讀
    【<b class='flag-5'>Linux</b>編程】如何使用gcc<b class='flag-5'>編譯</b>源代碼時(shí)輸出map<b class='flag-5'>文件</b>?

    Linux系統(tǒng)下查看elf文件方法

    作為一個(gè)嵌入式開發(fā)人員,交叉編譯是必須進(jìn)行的步驟。那么,如何判斷編譯生成的文件(動(dòng)態(tài),靜態(tài)
    的頭像 發(fā)表于 08-25 16:17 ?2845次閱讀
    <b class='flag-5'>Linux</b>系統(tǒng)下查看elf<b class='flag-5'>文件</b>的<b class='flag-5'>方法</b>

    Xilinx文件編譯

    Library下拉表中選擇simprims_ver仿真,在查找范圍選項(xiàng)中選中“Xilnx\ise\verilog\src\simprims”目錄下的全部文件,單擊Compile按鈕進(jìn)行編譯
    發(fā)表于 02-27 15:16

    請問怎么判斷Keil編譯時(shí)用到的基礎(chǔ)名字?

    怎么判斷Keil編譯時(shí)用到的基礎(chǔ)名字,在Linker選項(xiàng)里好像沒有體現(xiàn)的。include是-I中有,而的路徑怎么
    發(fā)表于 10-19 08:42

    gcc和Linux gcc 的常用選項(xiàng)

    gcc的使用方法gcc 【選項(xiàng)文件名gcc常用選項(xiàng)gcc-v: 查看gcc編譯器的版本,顯示gcc執(zhí)行時(shí)的詳細(xì)過程-oplease the
    發(fā)表于 10-19 22:43

    常見gcc編譯警告整理以及解決方法

     GCC有很多的編譯選項(xiàng),警告選項(xiàng);指定頭文件、路徑;優(yōu)化選項(xiàng)。本文針整理一下GCC的警告
    發(fā)表于 11-14 11:19 ?2.1w次閱讀

    嵌入式Linux工具之GCC常用編譯選項(xiàng)

    “-I dir”選項(xiàng)可以在頭文件的搜索路徑列表中添加 dir 目錄。由于 Linux 中頭文件都默認(rèn)放到了“/usr/include/”目錄下,因此,當(dāng)用戶希望添加放置在其他位置的頭
    的頭像 發(fā)表于 03-22 11:16 ?7652次閱讀
    嵌入式<b class='flag-5'>Linux</b>工具之GCC常用<b class='flag-5'>編譯</b><b class='flag-5'>選項(xiàng)</b>

    Linux程序的編寫、編譯、調(diào)試方法及make

    只要知道其中的幾個(gè)就夠了. -o選項(xiàng)我們已經(jīng)知道 了,表示我們要求輸出的可執(zhí)行文件名. -c選項(xiàng)表示我們只要求編譯器輸出目標(biāo)代碼,而 不必要輸出可執(zhí)行
    的頭像 發(fā)表于 07-16 17:02 ?5649次閱讀
    <b class='flag-5'>Linux</b>程序的編寫、<b class='flag-5'>編譯</b>、調(diào)試<b class='flag-5'>方法</b>及make

    Linux中如何判斷文件是否存在并新建文件

    本文檔的主要內(nèi)容詳細(xì)介紹的是Linux中如何判斷文件是否存在并新建文件夾vi文件免費(fèi)下載。
    發(fā)表于 01-17 08:00 ?8次下載
    <b class='flag-5'>Linux</b>中如何<b class='flag-5'>判斷</b><b class='flag-5'>文件</b>夾<b class='flag-5'>是否</b>存在并新建<b class='flag-5'>文件</b>夾

    gcc的使用方法以及Linux gcc 的常用選項(xiàng)

    gcc的使用方法 gcc 【選項(xiàng)文件名 gcc常用選項(xiàng) gcc -v: 查看gcc編譯器的版本,顯示gcc執(zhí)行時(shí)的詳細(xì)過程 -ofile
    的頭像 發(fā)表于 10-22 14:42 ?2997次閱讀

    Linux編程】如何使用gcc生成預(yù)編譯文件?

    Linux編程】如何使用gcc生成預(yù)編譯文件
    的頭像 發(fā)表于 08-31 13:07 ?1867次閱讀
    【<b class='flag-5'>Linux</b>編程】如何使用gcc生成預(yù)<b class='flag-5'>編譯文件</b>?

    Linux中的靜態(tài)和共享

    是一個(gè)二進(jìn)制文件,包含的代碼可被程序調(diào)用。例如標(biāo)準(zhǔn)C、數(shù)學(xué)、線程等等。有源碼,可下載后
    的頭像 發(fā)表于 05-10 09:34 ?947次閱讀

    Linux交叉編譯選項(xiàng)與源碼與目標(biāo)文件分離

    交叉編譯選項(xiàng) 編譯Linux,通常只需要運(yùn)行 make menuconfig 配置要編譯的模塊,然后運(yùn)行 make 。
    的頭像 發(fā)表于 09-27 11:48 ?721次閱讀

    Linux內(nèi)核編譯腳本

    獲得編譯命令及選項(xiàng) 編譯linux時(shí),默認(rèn)不會(huì)顯示編譯的命令,如果你要獲得編譯命令及其
    的頭像 發(fā)表于 09-27 11:52 ?577次閱讀

    linux驅(qū)動(dòng)程序的編譯方法有哪兩種

    Collection)或其他C/C++編譯器來編譯源代碼文件。這種方法較為原始,需要開發(fā)者手動(dòng)指定編譯
    的頭像 發(fā)表于 08-30 14:39 ?358次閱讀