我正在使用Ubuntu Linux 我已经创建了一个自定义静态库Mylib.a,我只能将它包含在那些与静态库位于同一目录中的c文件中。
我想把它变成一个通用库,这样我就可以将库文件包含到我想要的任何c文件中而不管它的位置
答案 0 :(得分:2)
您可以将.a
个文件(或更好的.so
文件)复制到标准位置,例如/usr/lib
。
如果从命令行进行编译,则还需要指定库名称(即使它已在/usr/lib
中),与指定-lpthread
等标准库时的方式相同。
您还可以在makefile
答案 1 :(得分:2)
要使用静态库,您必须在使用该库的.c文件中包含标题,然后链接该库。如果库的名称是libstatic.a
,那么:
gcc -o yourprog yourprog.c -lstatic
如果库不在同一目录中,请使用-L选项指定路径:
gcc -o yourprog yourprog.c -L/path-to-lib -lstatic
答案 2 :(得分:0)
正如Adriano所写,即使它与c文件不在同一目录中,也可以包含库。但是,您必须指定在哪里查找您使用的库。
见这里:https://gcc.gnu.org/onlinedocs/gcc/Directory-Options.html
希望我帮忙,