这可能是一个菜鸟问题,但我真的很想弄清楚:我的 C++ 项目使用了其他库(例如 log4cplus 和 getopt_pp)。我在eclipse下开发它,现在我用autotools配置它,用makefile和configure脚本分发它,以确保每个人都可以编译它。我的问题是:我怎样才能获得该调用./configure
或./make
将自动编译和安装最终用户系统中的静态库?
- 做这个的最好方式是什么?
- 安装库的最佳路径是什么?
这可能是一个菜鸟问题,但我真的很想弄清楚:我的 C++ 项目使用了其他库(例如 log4cplus 和 getopt_pp)。我在eclipse下开发它,现在我用autotools配置它,用makefile和configure脚本分发它,以确保每个人都可以编译它。我的问题是:我怎样才能获得该调用./configure
或./make
将自动编译和安装最终用户系统中的静态库?
最好的方法是根本不这样做。相反,您应该记录(在安装文档中)您的应用程序/库依赖于其他一些库(最好还有您测试它的版本),并且您的configure
脚本应该检查这些依赖项的存在。
原因是:
如果您将这些库与您的项目一起提供(而不是独立分发它们并要求用户确保它们已安装),那么您可能希望将这些库放在项目中它们自己的目录中,并在您的configure.ac
make通过将Makefile
输出目标添加到,确保它知道这些子目录AC_OUTPUT
,即类似
AC_OUTPUT(Makefile log4cplus/Makefile getopt_pp/Makefile yourprogramsrc/Makefile)
然后在您的根级别Makefile.am
,让它知道您的新子目录,即
SUBDIRS=log4cplus getopt_pp yourprogramsrc
然后确保您的包含标志和链接器标志设置正确,以指向您包含的库。