如何在编译时向GCC添加自定义库?

时间:2012-07-25 11:56:35

标签: c gcc compilation

我从网上下载了一个名为libsal.a的C库,以访问该库中的API,我在main.c中包含一个名为#include的头文件。我使用以下命令编译它:

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.

我该如何正确地做到这一点?

3 个答案:

答案 0 :(得分:6)

编译源代码时,它不是库,而是相关的包含文件;所以你需要告诉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 

答案 1 :(得分:4)

我相信您需要设置三个参数:

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

include目录将是头文件的位置。库目录将是库的位置(.a或.so),库名称将是库文件的名称,没有前导'lib'前缀或其扩展名(即-lsal而不是-l libsal) .a)。

答案 2 :(得分: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