2012-07-25 111 views
1

我已經從網上下載了一個名爲libsal.a的C庫,爲了訪問該庫中的API,我在main.c中包含了一個名爲#include的頭文件。我用下面的命令來編譯:如何在編譯時將自定義庫添加到GCC?

gcc -L /home/traana/Desktop/opensal-1.0.0/libsal.a main.c 

,但得到以下錯誤,當我編譯

main.c:3:17: fatal error: sal.h: No such file or directory 
compilation terminated. 

如何正確地做到這一點?

回答

4

當編譯源,這不是圖書館,而是包括文件是相關的;所以你需要告訴GCC其中那些都是,像

gcc -c -I/home/traana/Desktop/opensal-1.0.0/include main.c 

,然後用一些鏈接應用程序像

gcc -L/home/traana/Desktop/opensal-1.0.0 -lsal main.o 
0

如果是* .h是/home/traana/Desktop/opensal-1.0.0

嘗試

gcc -I /home/traana/Desktop/opensal-1.0.0 -L /home/traana/Desktop/opensal-1.0.0 main.c -lsal 
+4

-I和-L之後不應有空間 – Aftnix 2012-07-25 12:41:02

3

我認爲有三個參數,你將需要設置:

-I <include directory> 
-L <library directory> 
-l <library name> 

include目錄將是頭文件的位置。庫目錄將是庫的位置(.a或.so),庫名稱將是庫文件的名稱,不包含前導'lib'前綴或其擴展名(即-lsal而不是-l libsal 。一個 )。

相關問題