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

Ubuntu18.04编译MMMCore提示无法识别-std=c++2a参数如何解决

问题原因

你遇到的编译报错核心原因是:Ubuntu 18.04 默认自带的 GCC 7.5 版本不支持 C20 标准对应的编译标志 -std=c++2a,GCC 从 8.x 版本开始才加入对 C20(开发阶段代号为 c++2a)的支持。
另外你 cmake 输出里的 Could NOT find ALGLIB 警告如果不处理,后续编译也大概率会失败,可以提前安装对应依赖。

推荐解决方案(升级编译器,兼容性最好)

  1. 安装高版本GCC和ALGLIB依赖
sudo apt install gcc-9 g++-9 libalglib-dev
  1. 配置系统默认编译器指向GCC9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 90

执行完成后可以运行以下命令验证版本是否切换成功:

gcc --version
g++ --version

输出显示版本为9.x即为成功。
3. 清理之前的构建缓存,重新执行编译流程

cd ~/MMMCore/build
rm -rf *
cmake -DCMAKE_BUILD_TYPE=Release ..
make

备选解决方案(修改编译配置,仅适用于项目未依赖C++20特性的场景)

如果不想升级编译器,可以直接修改项目根目录的CMakeLists.txt配置:
找到这行配置

add_definitions(-std=c++2a)

修改为

add_definitions(-std=c++17)

保存后清理构建缓存重新执行cmake和make命令即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 22:45:03