gpt4 book ai didi

C++17 在 QtCreator4.8 中无法正常工作

转载 作者:太空狗 更新时间:2023-10-29 21:09:37 25 4
gpt4 key购买 nike

所以我试图在 QtCreator 4.8.1 中创建一个新的 C++17 cmake 项目,但我遇到了一个小问题。看来我使用的是正确的链接器和编译器,但一定有一个设置是我在某处遗漏的,因为我完成的(小)项目无法构建。

g++-9 不在 Ubuntu 中,所以我做的第一件事就是安装它(还有 gcc-9)。然后我创建了一个新工具包并将 C/C++ 编译器更改为那个。我没有对它进行其他更改。

#include <iostream>
#include <vector>
#include <algorithm>
#include <execution>

using namespace std;

int main()
{
std::cout << __cplusplus << std::endl;

std::vector<int> vec ={3, 2, 1, 4, 5, 6, 10, 8, 9, 4};

std::sort(vec.begin(), vec.end()); // sequential as ever
std::sort(std::execution::seq, vec.begin(), vec.end()); // sequential
std::sort(std::execution::par, vec.begin(), vec.end()); // parallel
std::sort(std::execution::par_unseq, vec.begin(), vec.end()); // parallel and vectorized

return 0;
}

虽然我可以按照标题进入正确的更新版本,但构建系统仍然提示 std::execution::seq 不存在(并且 __cplusplus 似乎一直指向 2014 版)

编辑:我尝试通过将 set(CMAKE_CXX_STANDARD 17) 添加到我的 cmake 文件来遵循类似问题中的建议,但现在我得到了

In file included from /usr/include/c++/9/pstl/parallel_backend.h:14,
from /usr/include/c++/9/pstl/algorithm_impl.h:25,
from /usr/include/c++/9/pstl/glue_execution_defs.h:52,
from /usr/include/c++/9/execution:32,
from /home/pedro/LockLessDt/main.cpp:4:
/usr/include/c++/9/pstl/parallel_backend_tbb.h:19:10: fatal error: tbb/blocked_range.h: No such file or directory
| ^~~~~~~~~~~~~~~~~~~~~

这听起来像是执行 header 的问题。

__cplusplus 现在指向正确的值。

这是我的cmake文件

cmake_minimum_required(VERSION 2.8)
project(LockLessDt)
set(CMAKE_CXX_STANDARD 17)
add_executable(${PROJECT_NAME} "main.cpp")

最佳答案

我想有人 here有类似的问题。

当您使用 CMake 时,可以尝试设置:

set(CMAKE_CXX_STANDARD 17)

关于C++17 在 QtCreator4.8 中无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57921368/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com