2017-06-04 103 views
0

因此,我使用C++和SFML在Linux(OpenSUSE)中创建了一个程序。加载SMFL共享库时出错

我试图将编译好的程序发送给我的一个朋友(也是在Linux上),但它说它缺少DLL。所以,我包括所有的“所以”我用(音频,图形,窗口和系统),但是当他试图运行它,它一直给错误:

error while loading shared libraries: libsfml-audio.so.2.4: cannot open shared object file: No such file or directory 

所以我去检查,并我绝对包括“libsfml-audio.so.2.4”文件。

我真的不想让他安装SFML,以便他可以运行它。

在此先感谢您的帮助。

+2

无需编辑标题,这已被接受的答案:) – Quentin

回答

2

当涉及到加载共享库时,Linux会更挑剔一些。

最简单的解决方案是捆绑您的共享库并告诉程序实际从那里加载它们。

假设共享库旁边的可执行文件,你会推出这样的:

LD_LIBRARY_PATH=. ./yourExecutableName 
+0

感谢的人来处理,有效。 –

+0

为什么SONAME ***不是***?也许相关,[C++链接器运行时缺少库(SONAME行为)](https://stackoverflow.com/q/10199045/608639) – jww

+0

@jww不知道。但是,这可能与链接问题类似。 – Mario