为不同的编译器版本维护多个构建
Posted
技术标签:
【中文标题】为不同的编译器版本维护多个构建【英文标题】:Maintaining multiple builds for different compiler versions 【发布时间】:2015-11-26 12:39:40 【问题描述】:我正在开发一个 C++ 库,并使用 Makefile 来编译和创建构建。我希望为不同的 gcc 编译器版本维护多个构建。最好的方法是什么?
【问题讨论】:
除了编译器版本之外,您希望构建之间有哪些不同? @Beta 没有其他区别 【参考方案1】:如果您准备好使用 autotools,autoconf/automake 可以让您通过 out of tree builds 完成此操作。如果您将每个构建分开到自己的目录(而不是源目录)中,您可以配置任意数量的构建。
配置编译器和编译器选项通常是简单的 bash 命令行问题。
mkdir mingw-build
cd mingw-build
CXX=mingw32-g++ ../myproject/configure ...
cd ..
mkdir native-build
cd native-build
CXX=g++ ../myproject/configure ...
cd ..
【讨论】:
或者使用 CMake 做得更好 - 轻松维护针对多个目标的多个编译器。 @RichardHodges 自动工具是make
的前端。 cmake
是 make
的替代品。正如 OP 询问 make
我认为我的回答是相关的。
我完全同意您的回答是相关的。 CMake 也有 Makefiles
的生成器。总的来说,我发现它比 autotools 更简单、更灵活。
@RichardHodges 我该如何使用 cmake?
@RichardHodges 我的目标是同时为几个编译器版本维护多个 .so 文件,并将所有 .so 文件签入存储库。 cmake/autotools 会达到目的吗?以上是关于为不同的编译器版本维护多个构建的主要内容,如果未能解决你的问题,请参考以下文章