3

我从网上下载了一个名为 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.

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

4

3 回答 3

7

编译源代码时,不是库,而是相关的包含文件;所以你需要告诉 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 
于 2012-07-25T12:00:48.250 回答
7

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

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

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

于 2012-07-25T12:11:29.663 回答
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
于 2012-07-25T11:58:30.810 回答