【发布时间】:2017-08-07 16:08:32
【问题描述】:
GCC 4.x 不接受用于 C++14 代码的 --std=c++14 开关 - 它采用 --std=c++1y 代替。更高版本采用 --std=c++1z 但(可能)不是 --std=c++17 尚未设置(在 2016 年编写)。也许 C++11 也有类似的问题。
CMake 是否有一些工具(可能作为一个模块)来根据 GCC 版本传递正确的开关?
【问题讨论】:
-
“也许C++11也有类似的问题。” 那就是c++11 vs c++0x,前者是在gcc4.7/中引入的8个左右。
-
顺便说一句,即使在支持现代编译器的编译器上,旧开关(0x、1y、1z)也能正常工作,因此没有真正需要让这个“正确” "。
-
这里是需要得到这个“正确”,因为传递原始编译器标志是 CMake 反模式并且违反元构建系统/构建的整个概念系统生成器。