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