麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 系統(tǒng) > Linux > 正文

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

2024-08-28 00:23:21
字體:
供稿:網(wǎng)友

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

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

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

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

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


復制代碼代碼如下:
# gcc foo.c -L /home/xiaowp/lib -static -lfoo -o foo

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 久久综合久久美利坚合众国 | 成人福利在线免费观看 | 久艹在线视频 | 精品一区二区在线播放 | 中文在线免费观看 | 久久久久久久久久久综合 | 成人午夜在线免费视频 | 国产品久久 | 青草视频在线观看视频 | 91麻豆蜜桃一区二区三区 | 91短视频网页版 | 国产精品欧美久久久久一区二区 | 欧美特黄a | 免费日韩片 | 日韩字幕 | 日韩视频一 | 91一区二区三区久久久久国产乱 | 久久久久久久一区二区 | 中文字幕一区在线观看视频 | 亚洲va久久久噜噜噜久久男同 | 羞羞视频免费网站日本动漫 | 偿还电影免费看 | 精品一区二区亚洲 | 午夜天堂在线视频 | 午夜激情视频网站 | 在线香蕉视频 | 日韩电影av在线 | 二区三区四区视频 | 五月天堂av91久久久 | 欧美成人精品欧美一级 | 国产精品亚洲精品日韩已方 | 污污黄 | 国产精品久久久久av | 香蕉成人在线观看 | 一级毛片免费高清 | 欧美一级特黄aaaaaaa什 | 中文字幕22页 | 久久精品视频日本 | 久久久精品视 | 性高湖久久久久久久久aaaaa | 毛片视频网址 |