对于类Unix系统,我真的很无望。我试图将一个开放的库下载到我的Ubuntu系统,以便我可以在我自己的C代码中使用它的函数。但是,现在我已经下载了库,它带来的不仅仅是.c和.h文件。它有像Makefile.am,Makefile.in这样的文件,以及像build和configure这样的文件夹,现在我正在试图找出所有这些内容。
在您自己的程序中包含和使用其他库的“正常”方法是什么?
我现在应该使用make命令制作某种.a存档文件,以便在编译我自己的程序时使用吗? - 像这样:
gcc myProgram.c theLibrary.a -o myProgram
或者make命令是否只能从所有内容中生成可执行文件而根本不包含我的代码?
我已经尝试忽略其他文件,只是复制了我项目所需的.c和.h文件。但是,在编译期间,gcc抱怨它无法找到一些config.h文件,其中包含库中的一个.c文件。我搜索了整个图书馆,没有任何这样的文件存在。
我现在很迷茫,我也不知道在谷歌搜索什么。如果有人能指出我正确的方向,我会非常感激。
如果重要的是我试图使用的库是libmpdclient。
答案 0 :(得分:4)
您下载的库的顶级目录中是否有README
或INSTALL
文件?如果是的话,请查看。
典型的过程归结为./configure
,然后make
,然后选择make install
,但是库可能会有依赖关系或其他问题需要考虑,您会发现上面提到的文件。
答案 1 :(得分:4)
通常当你下载一个linux程序(或共享库,或者......)时,你会得到源代码并且希望自己编译它。通常,您所做的只是以下三件事:
./configure
make
make install
(make install
可能需要root权限。
对于共享库,可能现在共享库文件安装在/usr/lib
(或/usr/local/lib
或其他)目录中,因此您可以通过执行{编译程序时将其链接到{1}}命令行上的{1}}。