compiler-errors - cmake/make - 无法识别的命令行选项 "-std=c++14"- 但 G++ 可以

标签 compiler-errors cmake makefile g++ c++14

我今天在服务器上的主文件夹中编译了 gcccmake(按此顺序)(服务器上的编译器已有 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/

相关文章:

makefile - makefile 符号 $@ 和 $< 是什么意思?

c++ - fatal error :iostream:Code::Blocks 中没有这样的文件或目录

node.js - 在Mint17上为Node.js构建插件

c++ - 将文件名与其路径分开

c++ - 未定义对 'libvlc_new"的引用但链接正确?

gcc - CMake 如何检查工作编译器?

makefile - 打印使目标名称

c++ - STL_vector.h 的 GCC 4.1.2 编译错误

java - 输入不匹配异常错误

cmake - 如果用户未更改,则设置 cmake 变量