我想知道不同的解决方案,可以轻松地为windows和unix编译我的跨平台应用程序。
现在我在Ubuntu上使用makefile,但在我的代码库变大之前,我想执行在Windows上编译它所需的步骤,然后继续这样做以确定它仍然有用。
我最好不要使用多个“makefile”解决方案污染我的SVN代码库存储库,例如VC ++解决方案等等,我想要一种更自动的方式。我尝试使用mingw和make for windows,但似乎我的secondexpansion awesomeness在Windows版本(或类似的东西)上不起作用。它不会编译,也抱怨_winNT或类似的东西没有被定义。
我应该如何准备我的代码库以进行跨平台轻松编译?像buildtools这样的东西,也许是从makefile自动生成VS文件,或类似的东西。也许stdinc文件中的一些预处理器魔术?
谢谢!
答案 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
您可以为每个编译器添加额外的标志(如果您愿意)或不同版本的编译器。