2017-01-06 4 views
0

を開くことができません。私はg ++でコマンドラインからコンパイルしようとしています。LinuxのSFMLは - 私はSFML作業を取得しようとしている問題を抱えていますLinuxのミント18シナモン64ビット</p> <p>を使用して共有オブジェクトファイル

私のファイルは、私はそれがうまくコンパイルg++ -c main.cpp -I/usr/lib/SFML-2.4.1/includeを実行する場合/home/joe/Desktop/SFML/test/main.cpp

マイSFMLフォルダが/usr/lib/SFML-2.4.1

であるです。 その後、私は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を実行したときに

はhowerver私は/usr/lib/SFML-2.4.1/libディレクトリlibsfml-graphics.so.2.4で今./sfml-app: error while loading shared libraries: libsfml-graphics.so.2.4: cannot open shared object file: No such file or directory

には、次のチェーンとのシンボリックリンク(このディレクトリ内のすべてのファイルでエラーを取得します。

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

オブジェクトファイルが見つかりませんだから、なぜ誰も私に説明することができ感謝し

+0

'-rpathは/ usr/libに/ SFML-2.4.1 /ライブラリのフルパスを含めるよう 'ld'に指示するか、libの場所を指し示す'/etc/ld.so.conf.d'に設定ファイルを作成し、 'ldconfig'を実行してください。 – alvits

答えて

0

proble?あなたが実行しているのは、ライブラリファイル/情報がどこにあるかをリンカに伝えているという事実ですが、プログラムを実行するとSFMLに属する共有ライブラリがどこにあるのか分かりません。

最も簡単な解決策は、環境変数LD_LIBRARY_PATHを設定するプログラムを実行するための小さなシェルスクリプトを作成することです。

このような何かが(未テスト)動作するはずです:別の方法として

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

、私はあなたにcompile and install SFML from sourcesをお勧めします。それほど複雑ではありません。最も難しいのは、すべての依存関係を判断し、最初にインストールされたものを取得することです(パッケージマネージャを使用することが望ましい)。

それはapt-getを使用してSFMLをインストールすることも可能ですが、私は彼らのバージョンが最新である100%わからない:あなたが使用することができますいずれかsudo apt-get install libsfml-dev

関連する問題