C++ makefile编译依赖库

标签 c++ compilation makefile static-libraries

这可能是一个菜鸟问题,但我确实在努力弄明白:我的 C++ 项目使用了其他库(例如 log4cplus 和 getopt_pp)。我在 eclipse 下开发它,现在我用 autotools 配置它,用 makefile 和配置脚本分发它,以确保每个人都可以编译它。 我的问题是:如何获得调用 ./configure./make 将自动编译并在最终用户系统中安装静态库?

  • 执行此操作的最佳方法是什么?
  • 安装库的最佳路径是什么?

最佳答案

最好的方法是根本不要这样做。相反,您应该记录(在安装文档中)您的应用程序/库依赖于其他一些库(最好还有您测试它的版本)并且您的 configure 脚本应该检查这些库的存在依赖关系。

原因是:

  • 此类库所在的系统之间存在巨大差异。您的脚本永远不会对每个人都正确执行。
  • 用户可能已经安装了兼容版本,并且可能更愿意使用该版本而不是可能与您的软件捆绑在一起的版本。
  • 将此类库静态链接到应用程序中实际上现在非常少见。所有主要编译器都默认为动态链接。这使得用户更有可能已经安装了这些库的某个版本。

关于C++ makefile编译依赖库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14126234/

相关文章:

c++ - 使用 clang 格式时,当行很大时如何将右括号换成新行?

c++ - 初始化指向另一个结构内部结构的指针

c++ - 根据线性顺序使用最接近的值将数字裁剪为其他类型的数字限制

c++ - 为什么使用 Visual Studio 和命令行编译时大小不同

Coverity 用于简单的 HalloWorld

ubuntu - 没有规则进行目标安装(Kubuntu Konsole)

c++ - .cpp中.o文件调用函数的编译问题

c++ - Qt 在控制台应用程序中录制音频

c++ - C++结构在不同的编译时间可以具有不同的对齐方式吗?

compilation - 你如何在scheme中编译一个可执行文件?