如何在Windows上使用CMAKE for C ++ 11?

时间:2014-06-24 20:14:37

标签: visual-studio c++11 cmake mingw clang

My C ++ 11项目目前在OSX上使用CMAKE,XCODE,CLANG。我希望在Windows上编译此代码。

计划是在Windows上使用相同的cmake设置文件。最好的情况是使用CMAKE生成使用Clang或gcc for C ++ 11的VS项目。

在我看来,Visual Studio暂时不会完全支持C ++ 11。所以我们都应该尝试为跨平台C ++ 11找到一个通用的解决方案。

如何使用CMAKE生成可在Windows上编译C ++ 11代码的项目/ makefile?

2 个答案:

答案 0 :(得分:1)

CMake的Visual Studio生成器将始终使用Visual C ++的cl编译器。

您要求的内容需要为CMake编写新的Generator。也就是说,写一个聪明的CMakeLists.txt无法解决问题,但必须通过向CMake核心二进制文件本身添加一个特性来解决。我同意,一旦Clang获得适当级别的Windows支持,这可能是有用的,但在撰写本文时,它可能为时尚早。

您可能需要查看CMake的experimental compile-features mechanism。这还不是CMake 3.0的一部分,但计划与下一个版本集成。我们的想法是,您只需指定所需的C ++ 11功能,CMake就会相应地配置编译器(如果编译器根本不支持该功能,则会出错)。

答案 1 :(得分:1)

您可以通过在生成时指定LLVM工具集来创建使用clang的VS项目。

http://public.kitware.com/Bug/view.php?id=14863

例如:

cmake.exe .. -T LLVM-vs2010