初学automake,只是使用简单的helloworld程序走了一遍流程,现在有个项目需要,自己试着使用automake自己编译了一下,主要遇到的问题是有第三方的库,例如pthread,alog,anet等库的时候就不知所措了,不知道在哪里添加相应的配置信息才能在自动生成的makefile文件中加入第三方库的引用信息,使得编译的时候能够让编译器找到库文件。我的配置是这样的:
- 在Makefile.am文件中添加INCLUDES=-I/home/admin/path/to/lib,如果有多个的话使用空格隔开
- 在xxxx_LDADD中添加库的lib文件路径
如下代码所示:
1 AUTOMAKE_OPTIONS=foreign
2 #SUBDIRS=tinyxml
3 bin_PROGRAMS=abdiff
4
5 #第三方库的头文件
6 INCLUDES=-I/home/admin/workspace/code/anet/include -I/home/admin/workspace/code/alog/include -I/home/admin/workspace/code/zlib/include
7 abdiff_SOURCES=abdiff.cpp Parser.cpp Result.cpp SimpleFileReader.cpp configure.c
8 #第三方库lib文件
9 abdiff_LDADD=tinyxml/libtinyxml.so /home/admin/workspace/code/anet/lib/libanet.a /home/admin/workspace/code/alog/lib/libalog.a /home/admin/workspace/code/zlib/lib/ libz.a -lpthread
在查找解决方案的时,看到还有说在configure.in中添加AC_CHECK_LIB([pthread])的方式,我没有尝试过,不知道对自己开发的库适不适用,暂时先写到这,以后有时间在补充吧。

本文分享了作者在使用Automake进行项目构建过程中如何引入并配置第三方库的经验,包括在Makefile.am中设置INCLUDES变量指定头文件路径及在LDADD中添加库文件路径的方法。
4万+

被折叠的 条评论
为什么被折叠?



