Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
向c程序添加自定义库_C_Linux_Ubuntu 14.04 - Fatal编程技术网

向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

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


我想让它成为一个通用库,这样我就可以将库文件包含到我想要的任何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)