初学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])的方式,我没有尝试过,不知道对自己开发的库适不适用,暂时先写到这,以后有时间在补充吧。