我从网上下载了一个名为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.
我该如何正确地做到这一点?
答案 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