将自定义库添加到 C 程序

Adding a custom library to c programs

我正在使用 Ubuntu Linux 我做了一个自定义静态库Mylib.a,我可以只将它包含到与静态库位于同一目录中的那些c文件中。

我想让它成为一个通用库,这样我就可以将库文件包含到我想要的任何 c 文件中,而不管它的位置如何

正如 Adriano 所写,您可以包含一个库,即使它与您的 c 文件不在同一目录中。但是,您必须指定在何处查找您使用的库。

看这里:https://gcc.gnu.org/onlinedocs/gcc/Directory-Options.html

希望我帮到你了,

您可以将该 .a 文件(或更好的 .so 文件)复制到标准位置,例如 /usr/lib.

如果你从命令行编译,你还需要指定库名(即使它已经在/usr/lib),当你指定标准库时也是如此,比如-lpthread

也可以在makefile

中指定库路径和库名

要使用静态库,您必须在使用该库的 .c 文件中包含 header,然后 link 该库。如果库的名称是 libstatic.a 那么:

gcc -o yourprog yourprog.c -lstatic

如果库不在同一目录中,请使用 -L 选项指定路径:

gcc -o yourprog yourprog.c -L/path-to-lib -lstatic

(另见 post:How to link to a static library in C?