如何准备代码库以在Windows和基于Unix的系统上进行编译

时间:2011-02-07 15:13:32

标签: c++ build cross-platform

我想知道不同的解决方案,可以轻松地为windows和unix编译我的跨平台应用程序。

现在我在Ubuntu上使用makefile,但在我的代码库变大之前,我想执行在Windows上编译它所需的步骤,然后继续这样做以确定它仍然有用。

我最好不要使用多个“makefile”解决方案污染我的SVN代码库存储库,例如VC ++解决方案等等,我想要一种更自动的方式。我尝试使用mingw和make for windows,但似乎我的secondexpansion awesomeness在Windows版本(或类似的东西)上不起作用。它不会编译,也抱怨_winNT或类似的东西没有被定义。

我应该如何准备我的代码库以进行跨平台轻松编译?像buildtools这样的东西,也许是从makefile自动生成VS文件,或类似的东西。也许stdinc文件中的一些预处理器魔术?

谢谢!

2 个答案:

答案 0 :(得分:6)

我将指向CMake,它由高端项目使用,例如MySQL,KDE或Compiz。

它能够为目标系统生成本机构建文件,例如基于Unix的平台的Makefiles,以及Windows的Visual C ++项目和解决方案文件。

为了处理平台差异,我邀请您查看我之前关于此主题的帖子:C++: Platform dependent types - best pattern

答案 1 :(得分:0)

我会选择加速版本:http://www.boost.org/doc/tools/build/doc/html/index.html

您可以从命令行(Windows上的dos命令提示符)选择您的平台和编译器,其他一切都可以正常工作。

例如

bjam release gcc,

bjam debug msvc

您可以为每个编译器添加额外的标志(如果您愿意)或不同版本的编译器。