首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可能的C++ 17编译器版本问题“不是‘std’的成员”

可能的C++ 17编译器版本问题“不是‘std’的成员”
EN

Stack Overflow用户
提问于 2021-03-23 21:14:07
回答 2查看 632关注 0票数 0

尝试用cmake配置构建代码,如下所示:

代码语言:javascript
复制
cmake_minimum_required(VERSION 3.10)
project(filemanager)

set(DEBUG_MODE "Debug")
set(CMAKE_CXX_STANDARD 17)
add_compile_options("-m32")
set(CMAKE_CXX_FLAGS "-m32 -std=c++17")
set(CMAKE_C_FLAGS "-m32")

我收到了一个函数中的错误:

代码语言:javascript
复制
error: 'scoped_lock' is not a member of 'std'

我的代码摘要如下所示:

代码语言:javascript
复制
#include <mutex>
#include <thread>
#include <iostream>
#include <vector>
#include <functional>
#include <chrono>

int GetRequestId()
{
    std::scoped_lock lock(m_mutex);
    return 0;
}

我的操作系统Ubuntu 16.04我的cmake输出如下:

代码语言:javascript
复制
-- The C compiler identification is GNU 5.5.0
-- The CXX compiler identification is GNU 5.5.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done

编辑他们说这是一个编译器版本问题。我安装了gcc-7g++-7,优先考虑如下:

代码语言:javascript
复制
update-alternatives --query gcc
Name: gcc
Link: /usr/bin/gcc
Status: auto
Best: /usr/bin/gcc-5
Value: /usr/bin/gcc-5

Alternative: /usr/bin/gcc-5
Priority: 20

Alternative: /usr/bin/gcc-7
Priority: 10

这样做对吗?

EN

回答 2

Stack Overflow用户

发布于 2021-03-23 21:41:51

好的,最后,我构建了代码。

代码语言:javascript
复制
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 10
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 20

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 10
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 20

首先,这些命令对其工作的编译器版本进行优先级排序。

票数 0
EN

Stack Overflow用户

发布于 2022-09-14 11:19:37

“std::scoped_lock”只能从C++17开始使用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66771395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档