私は正常libawesomium-1.6.5.so
をリンクすることができます 、共有ライブラリをリンクするカスタムLD_LIBRARY_PATHせずにプログラムを呼び出す
-L-L.
-L-lawesomium-1.6.5
-L-ldl
libawesomium-1.6.5.so
libawesomium-1.6.5.so
を指すシンボリックリンク
libawesomium-1.6.5.so.0
を作る
./prog: error while loading shared libraries: libawesomium-1.6.5.so.0: cannot open shared object file: No such file or directory
、再びprog
を実行すると、カスタム012でそれを呼び出して、私に同じエラーを与えますが動作しますが、私はprog
を配布したいと考えています。ユーザーにprog
をroot権限で(/usr/lib
などのawesomiumをインストールして)使用でき、LD_LIBRARY_PATH
を設定する必要はありません。 1つのオプションは、LD_LIBRARY_PATH
を設定するシェルスクリプトですが、私は別の方法を好むでしょう(私も設定を聞いてLD_LIBRARY_PATH
は悪い考えです)。
また、libawesomium-1.6.5.so.0
へのシンボリックリンクを作成する必要がない場合は、素晴らしいことでしょう。
EDIT:
はリンカの動作に-rpath=.
を渡します!しかし、残念ながらawesomiumはそれに対処することはできません。
/.../awesomium_test/AwesomiumProcess: error while loading shared libraries: libawesomium-1.6.5.so.0: cannot open shared object file: No such file or directory
-rpathを使用し、progの内部からLD_LIBRARY_PATHを設定
うわー、これはうまく動作します!まあ、完璧ではない、私の編集を参照してください。 – dav1d
私はそれを理解しました!自分のプログラムの中にawesomiumをロードする前に 'LD_LIBRARY_PATH'を設定することができます。 – dav1d
'-Wl、-rpath = .'の代わりに' -Wl、-rpath = '$ ORIGIN''を渡すべきです.LI_LIBRARY_PATHは役に立たないでしょう。 – Julien