我正在使用C ++语言开发项目(但是 - 这不是特定于C ++的问题)。在我的系统上,安装了几个C ++编译器,同一编译器的几个版本,甚至可能在我自己的主目录下构建了一些版本。我使用不同的编译器(C ++)用于不同的目的(尽管我在这里夸大了一点以使问题更加通用)。
现在,由于某些原因,我的项目依赖于编译器是gcc而不是clang,版本介于4.7和4.9之间,并且偏好了更新的版本。
我想让CMake找到我所拥有的相关编译器,并使用最好的编译器,如果它是有效的编译器。但是 - 我希望这不仅发生在我的系统上;这很容易逼迫。我希望它在任何(合理)系统上执行此操作,而不依赖于抓取我的代码进行任何CMakeLists.txt自定义或使用CXX=/some/thing
等明确设置编译器的开发人员。
更具体地说:
备注:
答案 0 :(得分:0)
CMake正在使用/ usr / bin / c ++,除非设置了CXX或将-DCMAKE_CXX_COMPILER传递给您的CMake呼叫。
您可以从CMAKE_CXX_COMPILER获取找到的编译器版本,如果不够,则会输出错误。如果检查特定的C ++编译器功能(如可变参数模板),情况也是如此 但我不知道如何检查几个编译器并通过CMake选择一个。