在Fedora 24上构建SFML链接错误:加载共享库时出错:libsfml-graphics.so.2.4:无法打开共享对象文件

时间:2016-08-22 18:36:38

标签: c++ linux shared-libraries sfml dynamic-linking

我一直试图让SFML在Fedora 24上工作几天,而我似乎无法让它工作。程序编译和链接很好,但是当我尝试运行已编译的程序时,我收到此错误:

./sfml-app: error while loading shared libraries: libsfml-graphics.so.2.4: cannot open shared object file: No such file or directory

我知道文件在那里,因为它们都位于/ usr / lib目录中:

ls /usr/lib | grep sfml
libsfml-audio-d.so
libsfml-audio-d.so.2.4
libsfml-audio-d.so.2.4.0
libsfml-graphics-d.so
libsfml-graphics-d.so.2.4
libsfml-graphics-d.so.2.4.0
libsfml-network-d.so
libsfml-network-d.so.2.4
libsfml-network-d.so.2.4.0
libsfml-system-d.so
libsfml-system-d.so.2.4
libsfml-system-d.so.2.4.0
libsfml-window-d.so
libsfml-window-d.so.2.4
libsfml-window-d.so.2.4.0

我认为问题在于它正在寻找libsfml-graphics.so.2.4,但该文件实际上名为libsfml-graphics -d .so.2.4。由于某种原因,-d在实际文件名中。我尝试在没有-d的情况下创建文件的链接,但它仍然无法正常工作。

我自己使用CMake构建了SFML,make然后使用make install安装了它。

当我运行ldconfig -p |时grep sfml我明白了:

libsfml-window-d.so.2.4 (libc6,x86-64) => /lib/libsfml-window-d.so.2.4
libsfml-window-d.so (libc6,x86-64) => /lib/libsfml-window-d.so
libsfml-system-d.so.2.4 (libc6,x86-64) => /lib/libsfml-system-d.so.2.4
libsfml-system-d.so (libc6,x86-64) => /lib/libsfml-system-d.so
libsfml-network-d.so.2.4 (libc6,x86-64) => /lib/libsfml-network-d.so.2.4
libsfml-network-d.so (libc6,x86-64) => /lib/libsfml-network-d.so
libsfml-graphics-d.so.2.4 (libc6,x86-64) => /lib/libsfml-graphics-d.so.2.4
libsfml-graphics-d.so (libc6,x86-64) => /lib/libsfml-graphics-d.so
libsfml-audio-d.so.2.4 (libc6,x86-64) => /lib/libsfml-audio-d.so.2.4
libsfml-audio-d.so (libc6,x86-64) => /lib/libsfml-audio-d.so

任何帮助实现这项工作将非常感激。 :)

编辑:
我得到了下载官方fedora SFML包的工作。我想我第一次安装它时忘了安装SFML-devel软件包。

1 个答案:

答案 0 :(得分:1)

' -d'文件是库的调试版本(如果我正确记住SFML的命名约定)。您似乎错过了非调试版本。