【C/C++】automake生成动态链接库

来源:互联网 发布:小金口网络问政 编辑:程序博客网 时间:2024/05/16 01:09
引言:

无论是在Linux还是在Unix环境中,make都是一个非常重要的编译命令。不管是自己进行项目开发还是安装应用软件,我们都经常要用到make或 make install。利用make工具,我们可以将大型的开发项目分解成为多个更易于管理的模块,对于一个包括几百个源文件的应用程序,使用make和 makefile工具就可以轻而易举的理顺各个源文件之间纷繁复杂的相互关系。但是如果通过查阅make的帮助文档来手工编写Makefile,对任何程序员都是一场挑战。幸而有GNU 提供的Autoconf及Automake这两套工具使得编写makefile不再是一个难题。利用 GNU Autoconf 及 Automake 这两套工具来协助我们自动产生 Makefile文件,并且让开发出来的软件可以像大多数源码包那样,只需"./configure", "make","make install" 就可以把程序安装到系统中。

最近接触到一个项目,项目使用C++实现,采用automake进行编译。由于编译文档缺失,没办法只好自行研究了automake的使用。网上那个一通查找,发现这方面的资料不是很多,而且照着做很少一次通过。
现做了一个小例子,以备后用。虽然公司项目大多用JAVA实现,但是感兴趣的童鞋还是可以mark下,保不齐
哪天需要,是吧。。

1.编写代码
test.cpp:
#include <iostream>
int main(){
  std::cout<<"hello world"<<std::endl;
}
2.autoscan,生成autom4te.cache,autoscan.log,configure.scan
其中configure.scan:

3.以configure.scan为样板,生成configure.in

4.手工建立Makefile.am
lib_LTLIBRARIES=libtest.la
libtest_la_SOURCES=test.cpp
libtest_la_LDFLAGS=
libtest_la_LIBADD=

5.touch NEWS README AUTHORS ChangeLog

6.cp /usr/share/libtool/ltmain.sh .

7.依次执行下列命令
aclocal 根据configure.in生成aclocal.m4
autoheader 根据configure.in生成config.h.in
automake --add-missing 

主要生成Makefile.in
autoconf根据configure.in生成configure

8.执行./configure,生成真正的Makefile

9.make

10.查看目录ll .libs/

11. make install

12.make uninstall


0 0