在Windows和Linux上构建C++

dim*_*mba 10 c++ build-process cross-platform cmake scons

我参与了面向Windows和Linux(RHEL)平台的C++项目.到目前为止,开发完全是在Visual Studio 2008上完成的.对于Linux编译,我们使用第三方Visual Studio插件,它读取VS解决方案/ perojects文件并在Linux机器上远程编译.

最近决定放弃第三方插件.

现在我最关心的是构建系统.我正在寻找跨平台构建工具.这样我就不需要维护两组构建文件(例如Windows的vcproj/solution和Linux的make文件).

我找到了以下候选人:a.Scons b.cmake的

您如何看待跨平台开发的工具?

令我困扰的另一点是Visual Studio(+ Visual Assist)在没有vcproj文件的情况下会丢失很多功能 - 你如何处理这些工具的问题?

谢谢迪马

PS 1:我喜欢Scons的一点是它(a)使用python,因此它很灵活,而cmake使用适当的语言(我知道它不是构建系统的赢家特征)(b)自包含(不需要)像在cmake上一样在Linux上生成makefile.

那么为什么不是Scons?为什么在你的项目中决定使用cmake?

haf*_*fax 10

CMake将允许您仍然使用Visual Studio解决方案和项目文件.Cmake本身不构建源代码,而是为您生成构建文件.对于Linux,这可以是Code :: Blocks,KDevelop或plain makefile,或者是其他更深奥的选择.对于Windows,它可以是Visual Studio项目文件,还有MacOS的其他文件.因此,Visual Studio解决方案和项目是从CMakeLists.txt创建的.这对大项目很有用.例如,目前的Ogre3d在所有平台(Windows,Linux,MacOS和IPhone)上都使用CMake,它运行得非常好.

我对这方面的scons知之甚少,但我只习惯构建一个库而且只在Linux中构建.所以我无法在公平的基础上比较这两者.但对于我们的多平台项目,CMake足够强大.