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

编译C++程序时遇libc.so.6未定义引用错误求助

解决Anaconda g++与系统GLIBC冲突导致的编译错误

你遇到的错误是因为当前使用的是Anaconda环境中的g++工具链,它的链接器(ld)和系统自带的GLIBC库版本不兼容,导致出现GLIBC_PRIVATE相关的未定义引用。

解决方案

1. 确认当前g++来源

先执行以下命令查看当前使用的g++路径:

which g++

如果输出是/home/shikhar/anaconda3/bin/g++,说明确实是Anaconda的工具链在起作用。

2. 临时切换到系统工具链

  • 如果当前激活了Anaconda环境,先执行:
    conda deactivate
    
    重复执行直到回到系统默认环境,然后再重新编译:
    g++ first.cpp
    
  • 如果还是不行,直接关闭终端重新打开,此时环境变量会重置,系统自带的g++会被优先调用。

3. 直接使用系统g++的绝对路径编译

不想切换环境的话,直接用系统g++的绝对路径编译:

/usr/bin/g++ first.cpp

编译完成后运行生成的可执行文件:

./a.out

应该会输出Hello world!。

4. 永久调整环境变量(可选)

如果希望默认使用系统的g++,可以修改shell配置文件:

  1. 打开你的shell配置文件(bash用户编辑~/.bashrc,zsh用户编辑~/.zshrc)
  2. 找到类似下面的行:
    export PATH="/home/shikhar/anaconda3/bin:$PATH"
    
  3. 将其修改为把系统/usr/bin放在前面:
    export PATH="/usr/bin:$PATH:/home/shikhar/anaconda3/bin"
    
  4. 保存文件后,执行以下命令使修改生效:
    source ~/.bashrc
    

之后每次打开终端,系统的g++都会被优先使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 19:57:33