由于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的问题;

上一篇:1074 Reversing Linked List (25 分)


下一篇:洛谷P1157 组合的输出