最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

linux軟件開發(fā)時(shí)給gcc指定頭文件和庫文件路徑的方法

  發(fā)布時(shí)間:2014-04-17 15:16:28   作者:佚名   我要評論
這篇文章主要介紹了linux軟件開發(fā)時(shí)給gcc指定頭文件和庫文件路徑的方法,需要的朋友可以參考下

在Linux 下開發(fā)軟件時(shí),完全不使用第三方函數(shù)庫的情況是比較少見的,通常來講都需要借助一個(gè)或多個(gè)函數(shù)庫的支持才能夠完成相應(yīng)的功能。從程序員的角度看,函數(shù)庫實(shí) 際上就是一些頭文件(.h)和庫文件(.so或者.a)的集合。雖然Linux下的大多數(shù)函數(shù)都默認(rèn)將頭文件放到/usr/include/目錄下,而庫 文件則放到/usr/lib/目錄下,但并不是所有的情況都是這樣。正因如此,GCC在編譯時(shí)必須有自己的辦法來查找所需要的頭文件和庫文件。

GCC采用搜索目錄的辦法來查找所需要的文件,-I 選項(xiàng)可以向GCC的頭文件搜索路徑中添加新的目錄。例如,如果在/home/xiaowp/include/目錄下有編譯時(shí)所需要的頭文件,為了讓GCC能夠順利地找到它們,就可以使用-I選項(xiàng)

同樣,如果使用了不在標(biāo)準(zhǔn)位置的庫文件,那么可以通過-L選項(xiàng)向GCC的庫文件搜索路徑中添加新的目錄。例如,如果在/home/xiaowp/lib/目錄下有鏈接時(shí)所需要的庫文件libfoo.so,為了讓GCC能夠順利地找到它,可以使用下面的命令:

值得好好解釋一下的是-l選項(xiàng),它指示GCC去連接庫文件libfoo.so。Linux下 的庫文件在命名時(shí)有一個(gè)約定,那就是應(yīng)該以lib三個(gè)字母開頭,由于所有的庫文件都遵循了同樣的規(guī)范,因此在用-l選項(xiàng)指定鏈接的庫文件名時(shí)可以省去 lib三個(gè)字母,也就是說GCC在對-lfoo進(jìn)行處理時(shí),會自動去鏈接名為libfoo.so的文件。

Linux下的庫文件分為兩大類分別是動態(tài)鏈接庫(通常以.so結(jié)尾)和靜態(tài)鏈 接庫(通常以.a結(jié)尾),兩者的差別僅在程序執(zhí)行時(shí)所需的代碼是在運(yùn)行時(shí)動態(tài)加載的,還是在編譯時(shí)靜態(tài)加載的。默認(rèn)情況下,GCC在鏈接時(shí)優(yōu)先使用動態(tài)鏈 接庫,只有當(dāng)動態(tài)鏈接庫不存在時(shí)才考慮使用靜態(tài)鏈接庫,如果需要的話可以在編譯時(shí)加上-static選項(xiàng),強(qiáng)制使用靜態(tài)鏈接庫。例如,如果在 /home/xiaowp/lib/目錄下有鏈接時(shí)所需要的庫文件libfoo.so和libfoo.a,為了讓 GCC在鏈接時(shí)只用到靜態(tài)鏈接庫,可以使用下面的命令:


復(fù)制代碼
代碼如下:

# gcc foo.c -L /home/xiaowp/lib -static -lfoo -o foo

相關(guān)文章

最新評論

稷山县| 三河市| 乌兰浩特市| 太谷县| 佛山市| 广平县| 荣成市| 建瓯市| 兴山县| 稻城县| 甘洛县| 广灵县| 砀山县| 邹城市| 旬邑县| 紫金县| 冷水江市| 通海县| 华宁县| 东源县| 隆尧县| 抚松县| 双桥区| 栾川县| 扶绥县| 封丘县| 上林县| 新河县| 林口县| 台南县| 内乡县| 南涧| 常宁市| 张掖市| 阳谷县| 贵南县| 宜春市| 乌苏市| 金坛市| 济阳县| 枣阳市|