Ubuntu OS で C++ で SFML を使用したいと考えています。cmake で 2 つのデバッグ/リリース共有ライブラリを作成します (このチュートリアルで)
パスに関する情報を一切提供せずに、テスト アプリケーションをコンパイルおよびリンクできます。だから私はすべてが標準的なパスで大丈夫だと思います
g++ -c main.cpp
g++ main.o -o sfml-app -lsfml-graphics -lsfml-window -lsfml-system
しかし、今アプリケーションを ./sfml-app で起動すると、
./sfml-app: 共有ライブラリの読み込み中にエラーが発生しました: libsfml-graphics.so.2: 共有オブジェクト ファイルを開けません: そのようなファイルやディレクトリはありません
これは私を混乱させます。/usr/local/lib が標準パスだと思うので、コンパイル中にこのパスを追加すると
g++ main.o -o sfml-app -L /usr/local/lib -lsfml-graphics -lsfml-window -lsfml-system
できます。ただし、 -L で情報を提供しなくても機能するはずです
では、何が問題になるのでしょうか? Ubuntuを再インストールする前にこれを作成しました。そして、私の古いシステムではうまく機能し、./ ターミナルとダブルクリックでアプリケーションを起動できます。
コンソールに追加すると
export LD_LIBRARY_PATH=$PATH:/usr/local/lib
コンソールからアプリケーションを起動できます。ただし、特定のものだけです。ダブルクリックでも(ターミナルからだけでなく)常にアプリケーションを起動したい。ライブラリを「システム全体」に追加するにはどうすればよいですか?