向c程序添加自定义库
我正在使用Ubuntu Linux 我制作了一个自定义的静态库Mylib.a,我只能将它包含到与静态库位于同一目录中的那些c文件中向c程序添加自定义库,c,linux,ubuntu-14.04,C,Linux,Ubuntu 14.04,我正在使用Ubuntu Linux 我制作了一个自定义的静态库Mylib.a,我只能将它包含到与静态库位于同一目录中的那些c文件中 我想让它成为一个通用库,这样我就可以将库文件包含到我想要的任何c文件中,而不管它的位置如何。正如Adriano所写的,您可以包含一个库,即使它与您的c文件不在同一目录中。但是,您必须指定在何处查找所使用的库 请看这里: 希望我能帮忙,您可以将文件(或者更好的.so文件)复制到标准位置,如/usr/lib 如果从命令行编译,还需要指定库名称(即使它已经在/usr/li
我想让它成为一个通用库,这样我就可以将库文件包含到我想要的任何c文件中,而不管它的位置如何。正如Adriano所写的,您可以包含一个库,即使它与您的c文件不在同一目录中。但是,您必须指定在何处查找所使用的库 请看这里:
希望我能帮忙,您可以将
文件(或者更好的.so
文件)复制到标准位置,如/usr/lib
如果从命令行编译,还需要指定库名称(即使它已经在/usr/lib
中),与指定标准库(如-lpthread
时相同
您还可以在中指定库路径和库名称要使用静态库,您必须在使用库的.c文件中包含头,然后链接库。如果库的名称为libstatic.a
,则:
gcc -o yourprog yourprog.c -lstatic
如果库不在同一目录中,请使用-L选项指定路径:
gcc -o yourprog yourprog.c -L/path-to-lib -lstatic
(另请参阅本文:)gcc
将在特定文件夹中搜索,有关更多详细信息,请参阅文档(您可以从LIBRARY\u PATH
环境变量开始,也可以使用-v
编译以查看其搜索位置)。或者,您可以在gcc
命令行上提供完整路径(任何位置)。如何包含此库?您必须包含标题并链接库。我确实将其复制到了/usr/lib,但它仍然会给我编译错误是链接错误还是编译错误?您还记得将.h
文件复制到/usr/include
吗?我没有复制.h文件,它可以工作!当我运行对象文件gcc-o ex ex.o-l_mylib时,我还必须提到库名。有没有办法将这个库永久添加到makefile中?有没有办法创建一个自定义库,可以不使用-l来调用?(like-lpthread)