Target需要语言方言“CXX17”(带有编译器扩展名),但CMake不知道用于启用它的编译标志
问题描述:
所以我一直试图将<filesystem>
包含到我的项目中,这似乎是一个更大问题比我想象的要多。 <filesystem>
应该是C++ 17的一部分,我需要将该定义添加到我的CMakeList中。Target需要语言方言“CXX17”(带有编译器扩展名),但CMake不知道用于启用它的编译标志
我的根CmakeLists是这样的:
我在其中添加了C++ 17的定义,但是当我编译我的系统,我得到这个错误:
make
“InsrcCMAKELIST”
“InincludeCMAKELIST”
“IndatabaseCMAKELIST”
“InmatchCMAKELIST”
“InrecordCMAKELIST”
“InspectogramCMAKELIST”
/home/lamda/soundcloud/src/include/spectogram/base/base.h
“outspectogramCMAKELIST”
-- Configuring done
CMake Error in src/CMakeLists.txt:
Target "cmakeDemo" requires the language dialect "CXX17" (with compiler
extensions), but CMake does not know the compile flags to use to enable it.
-- Generating done
-- Build files have been written to: /home/lamda/soundcloud/build
make: *** [cmake_check_build_system] Error 1
但不知何故是不是愿意使用C++ 17,所以我可以使用filesystem
库?为什么?
您使用的是哪个版本的cmake? 17作为'CMAKE_CXX_STANDARD'的值只支持从v3.8 – VTT
我使用的是cmake 3.9.6 ..我更新了cmake因为这个... 但是这个解决方案显然也是升级gcc和g ++ – Lamda
http://ovenproof-linux.blogspot.dk/2016/09/upgrade-gcc-and-g-in-ubuntu.html – Lamda