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

Kali Linux下Snap版CLion创建C项目时CMake编译失败求助

解决Kali Linux中Snap版CLion创建C项目的CMake链接错误

问题核心

使用Snap安装的CLion创建C可执行项目时,CMake检测C编译器失败,链接阶段报错:ld无法识别.relr.dyn段,提示系统的libc.so.6和ld-linux-x86-64.so.2不兼容、找不到。这是因为Snap的沙箱环境与Kali系统的新版glibc/Binutils不兼容,Snap自带的链接器版本过低,不支持glibc 2.34+引入的.relr.dyn重定位段。

解决办法

1. 更新系统工具链

首先确保系统的Binutils、gcc和libc开发包是最新版本,.relr.dyn需要Binutils 2.37及以上版本支持:

sudo apt update && sudo apt install --reinstall binutils gcc libc6-dev

验证链接器版本,确认输出版本号≥2.37:

ld --version

2. 配置CLion使用系统Ninja而非Snap自带版本

Snap版CLion默认使用自身打包的Ninja,可能强制调用Snap环境内的旧版链接器。修改CLion的CMake配置:

  • 打开CLion,进入File > Settings > Build, Execution, Deployment > Build Tools > CMake
  • 在CMake options输入框中添加:
    -DCMAKE_MAKE_PROGRAM=/usr/bin/ninja
    
  • 点击Apply后,删除原有的cmake-build-debug目录,重新执行CMake配置。

3. 切换到官方tar包安装的CLion(彻底解决环境隔离问题)

Snap的沙箱隔离可能持续导致系统库与工具链不兼容,直接使用JetBrains官方tar包安装CLion可完全复用系统工具链:

  1. 从JetBrains官网下载CLion的tar.gz包
  2. 解压到用户目录或系统目录(示例:~/tools/):
    tar -xzf clion-*.tar.gz -C ~/tools/
    
  3. 运行~/tools/clion-*/bin/clion.sh启动CLion
  4. 首次启动时,在Toolchains配置中选择System,确保编译器路径为/usr/bin/gcc,链接器自动使用系统的/usr/bin/ld

4. 若为旧版Kali,更新软件源到rolling分支

如果你的Kali是旧版本,默认软件源的Binutils版本不足,更新到rolling分支:

echo "deb http://http.kali.org/kali kali-rolling main non-free contrib" | sudo tee /etc/apt/sources.list
sudo apt update && sudo apt upgrade binutils

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 21:05:20