我今天在服务器上的主文件夹中编译了 gcc
和 cmake
(按此顺序)(服务器上的编译器已有 5 年历史,我需要 C++14
特性...)。
我通过命令编译的时候没有问题,
g++ -std=c++14 main.cc
但是如果我使用 cmake .
然后 make
,我得到了这个错误:
cc1plus: error: unrecognized command line option "-std=c++14"
在 CMakeLists.txt 中:
add_definitions(-std=c++14)
在 CMakeFiles/a.out.dir/flags.make 中
CXX_FLAGS = -I/home/jager/manufacture/usr/local/include -std=c++14
信息:
$ g++ --version
g++ (GCC) 5.2.0
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ cmake --version
cmake version 3.3.2
CMake suite maintained and supported by Kitware (kitware.com/cmake).
我不知道这是什么鬼……
最佳答案
看来您使用的是系统编译器,而不是您刚刚构建的编译器。最好的办法是使用新编译的 g++ 配置项目:
cmake -DCMAKE_CXX_COMPILER=/path/to/your/g++ .
您可以通过执行详细构建并查看 CMake 正在使用的 g++
路径来验证是否使用了正确的编译器:
make VERBOSE=1
关于compiler-errors - cmake/make - 无法识别的命令行选项 "-std=c++14"- 但 G++ 可以,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32674202/