Linux编译软件遇g++: unrecognized command line option ‘-std=c++2a’错误求助
解决g++不识别
-std=c++2a编译选项问题 首先确认当前系统使用的g++版本:
g++ --version
如果输出的是系统自带的旧版本(gcc 7及以下不支持-std=c++2a),说明conda安装的gcc没有被正确调用,按以下步骤排查:
检查conda环境的g++路径
激活你的conda环境后,执行:conda activate <你的环境名称> which g++若输出不是conda环境目录下的g++(比如
~/miniconda3/envs/你的环境/bin/g++),手动将conda的bin目录加到PATH最前端:export PATH=$CONDA_PREFIX/bin:$PATH再次执行
g++ --version确认版本为你安装的gcc8/9/10/12。修改Makefile指定编译器
如果环境变量设置正确但仍报错,打开项目的Makefile,找到CXX或CC的定义行(通常是CXX = g++),替换为conda环境的g++绝对路径,或者改为:CXX = $(shell which g++)让make自动使用当前环境的编译器。
编译时直接指定编译器
无需修改Makefile,调用make时显式指定CXX变量:make CXX=$(which g++)补充:设置库路径(若需要)
部分系统中conda的gcc需要指定库路径,执行:export LD_LIBRARY_PATH=$CONDA_PREFIX/lib:$LD_LIBRARY_PATH
内容的提问来源于stack exchange,提问作者lilimei
相关产品推荐
相关产品推荐

