C/C++教程

由于cmake的问题导致c++17的shared_mutex不能用

本文主要是介绍由于cmake的问题导致c++17的shared_mutex不能用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

问题:原本能够使用c++17特性的工程突然间不能使用

定位过程:

  1. 先确认是否是g++出了问题,网上找了一个c++17的新特性例子,使用g++ XXX.cpp -o XXX,和g++ -std=c++17 XXX.cpp -o XXX 两个方式进行测试,结果表明:明确指定c++17后,能够使用新特性;
  2. 确定CMakeLists.txt是否有问题,先注释掉语句
  • set(CMAKE_CXX_STANDARD 17)
    接着进行make,然后取消该行注释,再次make,发现指定c++17是有效的。
  1. 陷入纠结后,使用vscode的cmake插件进行配置,接着使用make指令,最终编译通过;

当前结论:CMake会影响工程的构建,后续重新安装cmake后才能确定是否是cmake的问题;

这篇关于由于cmake的问题导致c++17的shared_mutex不能用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!