每当我尝试编译 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
,但可能某些符号链接混乱。
您可以尝试
libgl1-mesa-dev
使用重新安装sudo apt install --reinstall libgl1-mesa-dev
如果错误是由损坏的符号链接引起的,则重新安装可以重新创建符号链接,从而进行修复。
您可以尝试自己重新创建符号链接。
/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