You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 16.04下GCC 7.2缺失<execution>头文件的解决方法求助

解决GCC 7.2.0编译C++17代码时找不到头文件的问题

嘿,我之前碰到过类似的坑,GCC 7.x系列对C++17并行标准库的支持确实有点“半吊子”,咱们一步步来搞定这个问题:

首先,你遇到的fatal error: execution: No such file or directory,本质原因是GCC 7.2.0里的<execution>属于实验性C++17特性,默认没有启用,而且相关的依赖库可能也没安装完整。

下面是具体的解决步骤:

1. 先补全必要的依赖包

Ubuntu 16.04上的GCC 7.2.0,并行STL需要依赖libstdc++-7-dev和libtbb-dev(并行STL常用TBB作为后端实现),先执行这两条命令确保它们安装到位:

sudo apt-get update
sudo apt-get install libstdc++-7-dev libtbb-dev

2. 修改编译命令,启用实验性支持

你原来的编译命令缺少了开启并行STL的关键参数,需要调整成下面两种方式之一:
如果用OpenMP作为并行后端:

g++ -std=c++17 -fopenmp -D_GLIBCXX_PARALLEL auto_parallel.cpp -o auto_parallel

如果用TBB作为并行后端:

g++ -std=c++17 -ltbb -D_GLIBCXX_PARALLEL auto_parallel.cpp -o auto_parallel

我给你解释下这些参数的作用:

  • -fopenmp/-ltbb:分别启用OpenMP或TBB并行后端,为并行算法提供执行环境
  • -D_GLIBCXX_PARALLEL:这个宏会开启GNU的并行标准库扩展,同时让编译器能识别并找到<execution>头文件

3. 备选方案:升级到更高版本的GCC

GCC 7.x对C++17的支持确实不够成熟,很多特性都处于实验阶段。如果上面的方法还搞不定,不如直接升级到GCC 8及以上版本——Ubuntu 16.04可以通过官方工具链PPA来安装:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-8 g++-8

之后用新编译器编译:

g++-8 -std=c++17 auto_parallel.cpp -o auto_parallel

GCC 8及以后对C++17的支持更全面,<execution>头文件不需要额外参数就能直接使用,省心不少。

内容的提问来源于stack exchange,提问作者user2315094

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 10:00:04