将自定义库添加到 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?)
我正在使用 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?)