这可能是一个菜鸟问题,但我确实在努力弄明白:我的 C++ 项目使用了其他库(例如 log4cplus 和 getopt_pp)。我在 eclipse 下开发它,现在我用 autotools 配置它,用 makefile 和配置脚本分发它,以确保每个人都可以编译它。
我的问题是:如何获得调用 ./configure
或 ./make
将自动编译并在最终用户系统中安装静态库?
- 执行此操作的最佳方法是什么?
- 安装库的最佳路径是什么?
最佳答案
最好的方法是根本不要这样做。相反,您应该记录(在安装文档中)您的应用程序/库依赖于其他一些库(最好还有您测试它的版本)并且您的 configure
脚本应该检查这些库的存在依赖关系。
原因是:
- 此类库所在的系统之间存在巨大差异。您的脚本永远不会对每个人都正确执行。
- 用户可能已经安装了兼容版本,并且可能更愿意使用该版本而不是可能与您的软件捆绑在一起的版本。
- 将此类库静态链接到应用程序中实际上现在非常少见。所有主要编译器都默认为动态链接。这使得用户更有可能已经安装了这些库的某个版本。
关于C++ makefile编译依赖库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14126234/