鏈結庫和標頭檔案。

2021-09-17 23:38:47 字數 1136 閱讀 4265

1.標頭檔案

系統標準標頭檔案在: /usr/include 安裝庫的標頭檔案位置:/usr/local/include/

如有檔案寫成這樣#include對應/usr/include/linux/can.h ,因為他在usr/include找不到標頭檔案,是在usr/include/下目錄下,所以必須指出他的完整路徑。如果標頭檔案就在usr/include下,就不用指出。那會按預設的找。

當你需要新增放置在其他位置的標頭檔案時,就可以通過「-i dir」選項來指定。

2.庫檔案

-系統標準庫檔案位置:/lib /usr/lib

-使用者安裝庫位置: /usr/local/lib

預設只搜尋標準c語言庫,對於系統標準庫中的其他庫以及安裝庫,需要在編譯時指定庫名。對於非系統標準庫還需通過-l來指定庫檔案位置。-lname 鏈結稱為libname.a(靜態庫)或者libname.so(動態庫)的庫檔案。若兩個庫都存在,則根據編譯方式(-static或者-shared)而進行鏈結。

靜態庫製作:

gcc -c xx.c

ar rcsv libname.a xx.o

gcc -o xx(可執行檔案) xx.c -l. -lname

./***(可執行檔案)

動態庫:

gcc -fpic -wall -c xx.c (生成使用相對位址的位置無關的目標**)

gcc -shared -o libname.so ***.o(使用gcc的-static選項從該pic目標檔案生成動態庫檔案)

gcc -o ***(可執行檔案) ***.c -l/name -lname 鏈結到剛剛生成的動態庫libname.so(如果是系統標準庫中的其他庫以及安裝庫,不需要l/路徑名)

./可執行檔案 (因為動態庫的特性這點和靜態庫不一樣,程式執行時才被載入,所以在執行之前,需要註冊動態庫的路徑名)

註冊動態庫路徑名有這幾種方法:

1.修改/etc/ld.so.conf檔案,或者修改ld_library_path環境變數(export ld_library_path=動態庫的路徑),或者將庫檔案直接複製到/lib或者/usr/lib目錄下。

QT增加鏈結庫和標頭檔案搜尋目錄(相對目錄)

qt開發的時候,需要增加鏈結的動態庫或者靜態庫,或者搜尋的標頭檔案。正常情況下,使用相對目錄是最好的。下面是常用的方法 1 增加庫依賴。如下,out pwd表示qt編譯後的輸出目錄。比如debug或者release目錄。後續發布的時候,把so庫或者靜態庫放入到對應的目錄即可正常執行。libs out...

CMake新增標頭檔案,庫檔案,鏈結庫檔案

羅列一下cmake常用的命令。cmake支援大寫 小寫 混合大小寫的命令。1.新增頭檔案目錄include directories 語法 include directories after before system dir1 dir2 它相當於g 選項中的 i引數的作用,也相當於環境變數中增加路徑...

QtCreator新增庫檔案和標頭檔案

在使用qtcreator開發影象處理程式的時候想加入opencv庫來處理圖形,新增標頭檔案,需要編輯工程資料夾下的.pro檔案在檔案中新增以下內容,即可包含標頭檔案的資料夾 includepath d opencv2.0 vc2008 include opencv d opencv2.0 vc200...