簡體   English   中英

Linux SFML-無法打開共享對象文件

[英]Linux SFML - Cannot Open Shared Object File

使用Linux Mint 18 Cinnamon 64位

我在嘗試使SFML工作時遇到問題。 我正在嘗試使用g ++從命令行進行編譯。

我的文件是/home/joe/Desktop/SFML/test/main.cpp

我的SFML文件夾位於/usr/lib/SFML-2.4.1

如果我運行g++ -c main.cpp -I/usr/lib/SFML-2.4.1/include則可以正常編譯。 然后我運行g++ main.o -o sfml-app -L/usr/lib/SFML-2.4.1/lib -lsfml-graphics -lsfml-system -lsfml-window -lsfml-audio在使用-L命令現在可以正常工作。

但是,當我運行./sfml-app時,出現錯誤./sfml-app: error while loading shared libraries: libsfml-graphics.so.2.4: cannot open shared object file: No such file or directory

現在,在/usr/lib/SFML-2.4.1/lib目錄中,libsfml-graphics.so.2.4是帶有以下鏈的符號鏈接(此目錄中的所有文件。

libsfml-graphics.so-> libsfml-graphics.so.2.4-> libsfml-graphics.so.2.4.1

那么誰能向我解釋為什么找不到目標文件? 謝謝

您遇到的問題是您告訴鏈接器在哪里可以找到庫文件/信息,但是在運行程序時,系統將不知道在哪里可以找到屬於SFML的共享庫。

最快的解決方法是創建一個小的Shell腳本來運行您的程序,該腳本會設置環境變量LD_LIBRARY_PATH

這樣的事情應該起作用(未經測試):

#!/usr/bin/bash
LD_LIBRARY_PATH=/usr/lib/SFML-2.4.1/bin ./sfml-app

作為替代方案,我建議您從source編譯並安裝SFML 沒那么復雜。 最困難的部分是確定所有依賴關系,然后首先安裝(最好使用軟件包管理器)。

也可以使用apt-get安裝SFML,但我不能100%確定其版本是最新的: sudo apt-get install libsfml-dev

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM