我在过去两个月里没有在我的某个项目上工作,今天我已经编译了它并且我试图运行它,但是当我尝试运行它时我得到了这个错误:
./a.out: error while loading shared libraries: libGLEW.so.1.10: cannot open shared object file: No such file or directory
所以我做了ldd a.out | grep "GLEW"
并得到了:
libGLEW.so.1.11 => /usr/lib/libGLEW.so.1.11 (0xb7380000)
libGLEW.so.1.10 => not found
找到libGLEW
返回:
/usr/lib/libGLEW.so
/usr/lib/libGLEW.so.1.11
/usr/lib/libGLEW.so.1.11.0
/usr/lib/libGLEWmx.so
/usr/lib/libGLEWmx.so.1.11
/usr/lib/libGLEWmx.so.1.11.0
我不明白为什么以及我的项目如何同时链接1.11和1.10,我检查我的CMakeLists.txt
没有指定使用1.10或1.11,所以从哪里可以来自我的问题?如果您需要更多信息,我可以添加一些,但是现在,我不知道哪种信息可以用来解决这个问题。我想这个问题出现在我的操作系统更新后(archlinux)
答案 0 :(得分:2)
对于加载器,这些都只是文件名。它没有版本控制的概念。
我的猜测是出现了这种情况,因为1.11是一个薄层,可能是为了修补bug或增强功能,并且假设主要使用1.10版本。