前两篇博客分别介绍使用automake生成静态链接库和动态链接库的方法。有时候我们在一个项目中需要同时生成静态链接库和动态链接库。现在就介绍一下实现的方法。
假设我们的项目根目录为project,下面有三个子目录hello,fun,src,其中hello目录包含hello.cpp和hello.h,用来生成动态链接库。fun目录下面有Fun.cpp和Fun.h,用来生成静态链接库,src目录下面含有man.cpp用来调用其他两个库。
实现的过程如下:
- 在fun目录下新建Makefile.am,文件内容和生成静态库一样。

- 在hello目录下新建Makefile.am文件,文件内容为:

- 在src目录下新建Makefile.am文件,文件内容为:

- 在project目录下运行autoscan命令,将configure.scan改为configure.in文件,修改文件内容:

这里我同时加了AC_PROG_RANLIB和AC_PROG_LIBTOOL,其实只需要加入AC_PROG_LIBTOOL即可,加入的AC_PROG_RANLIB其实也会被AC_PROG_LIBTOOL覆盖。
- 运行aclocal、autoiconf、autoheader、automake -a。
- 运行./configure --prefix=‘pwd’
- 运行make && make install命令。
这时候fun和hello目录下的库文件就生成了。src下面就生成了可执行文件。
本文介绍在一个项目中同时生成静态链接库和动态链接库的方法。通过具体步骤和示例,展示了如何利用automake和相关工具完成整个构建过程。
4万+

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



