2017-06-04 102 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