从 /usr/lib/ld 找不到 -lGL

从 /usr/lib/ld 找不到 -lGL

每当我尝试编译 Code::Blocks 的 C++ 项目时,都会出现此错误:

/usr/bin/ld: cannot find -lGL

我已尝试根据该问题的其他解决方案安装以下软件包:

fglrx-dev
fglrx-updates
fglrx-updates-dev

上面的 3 个找不到。

mesa-common-dev
freeglut3-dev
freeglut3
libgl1-mesa-dev
build-essential checkinstall libc6-dev libssl-dev libexpat1-dev libgl1-mesa-dev libqt4-dev libavcodec-dev libavutil-dev pkg-config
libxmu-dev
libxmu-headers
libxext-dev
libxi-dev

所有这些要么已经安装,要么没有任何作用。我有 nvidia-driver-515。

答案1

此错误是由于链接器 ( /user/bin/ld) 找不到 而引起的libGL.so。此库由软件包提供libgl1-mesa-dev,但可能某些符号链接混乱。

  1. 您可以尝试libgl1-mesa-dev使用重新安装

    sudo apt install --reinstall libgl1-mesa-dev
    

    如果错误是由损坏的符号链接引起的,则重新安装可以重新创建符号链接,从而进行修复。

  2. 您可以尝试自己重新创建符号链接。/usr/lib/x86_64-linux-gnu/libGL.so应该链接到实际libGL.so文件(可能带有类似或类似的后缀.1)所在的位置。您可以在/usr/lib/x86_64-linux-gnu/或下查找/usr/lib文件,删除当前的符号链接/usr/lib/x86_64-linux-gnu/libGL.so,然后使用重新创建指向实际库的符号链接

    sudo ln -s /path/to/libGL.so(.1) /usr/lib/x86_64-linux-gnu/libGL.so 
    

相关内容