問題タブ [rpath]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
3718 参照

erlang - ソースからErlang OTPをビルドするOpenSSLエラー

システムにインストールされているライブラリとは独立して移動できる、完全に自己完結型の OTP を構築しようとしています。

次のように、ソースから OpenSSL 1.0.0d をビルドします。

次に、OTP R14B03:

Make of Erlang は次のように失敗します。

Ubuntu 10.04 について話しています。どんな助けでも大歓迎です-ありがとう!

0 投票する
1 に答える
1607 参照

linux - LD_PRELOADはLD_LIBRARY_PATHを変更します

特有の問題があります。gcc-4.2を使用して構築した共有ライブラリ「my_tracker.so」があります。この共有ライブラリは、libgcc_s.so.1(GCC 4.2)に依存するようになりました。'ldd my_tracker.so'を実行すると、/lib64からlibgcc_s.so.1が取得されました。

私は実行しています

スクリプト内。[vnc_install]/lib/vnclibs/vncserverがlibgcc_so.1(GCC 3.2.3)をから取得していることを確認して、の前に配置したいと思いLD_LIBRARY_PATHます。

ただし、スクリプトを実行した後、vncserverがからlibgcc_s.so.1(GCC 4.2)を取得しているよう/lib64です。

プリロードされた共有ライブラリ'my_tracker.so'をロードするLD_LIBRARY_PATHと、libgcc_s.so.1(GCC 4.2)が見つかった場所の前にが追加されますか?

もしそうなら、どうすればこの問題を修正できますか?

よろしくジョン

0 投票する
1 に答える
36188 参照

makefile - makefile で RPATH を指定するには?

バイナリで rpath を指定しようとしています。私のメイクファイルは次のようになります-

しかし、コマンドreadelf -a ./main | grep rpathを使用してrpathを照会すると、rpathを指定しようとしても何も得られませんLDFLAGS= "-rpath=../libs/"が、それでもうまくいかないようです。

メイクファイルで rpath を指定する方法について、誰かが例を投稿できますか?

GCC と ld のバージョンは -

0 投票する
1 に答える
794 参照

xcode3.2 - @rpath は、別の .dylib からロード/呼び出された .dylib を検索するために機能しますか?

dlopen を使用して .dylib ファイルをロードするための @rpath を見つけたので、それらを理解するための助けが必要です。OSX マシンで Xcode 3.2.5 を使用しています。

他の .dylib を呼び出し、互いに呼び出す .dylib がいくつかあります。@rpath は、ロードされた最初の .dylib に対して機能するようですが、@rpath を使用して以前に検出およびロードされた最初の .dyblib ファイルを使用する別の .dylib で dlopen 呼び出しを行うと、dlopen は、それが可能であると言って失敗します。元の .dylib を見つけません。

@rpath は、dlopen で使用されているファイルに対してのみ機能しますか?それとも、開かれている dylib ファイル内の依存関係を解決するためにも使用されていますか?

アップデート:

私のさらなる発見により、相互依存関係を @rpath を持つように変更するために install_name_tools を使用するようになりました。これはこれを行う正しい方法ですか?

0 投票する
1 に答える
3197 参照

macos - Mac OS XのCmake、フルパスでライブラリをリンク

cmakeでPython拡張機能を構築しようとしています。これはcmakeリストです:

ライブラリは正しくコンパイルおよびリンクされていますが、otoolを使用して気に入ったライブラリを見ると、次のようになります。

CMakeにdrtile.soをvigranumpycore.soおよびlibboost_python.dylibへのフルパスにリンクさせるにはどうすればよいですか?ありがとう!

0 投票する
5 に答える
32458 参照

gcc - MinGWとMSYSがコマンドラインで指定されたパス名を操作しないようにする方法

Windowsでは、CodeSourceryのクロスコンパイラスイートを使用して、ARM/Linux用のプログラムをクロスコンパイルしています。私はコマンドインタープリターとしてMinGWMSYSを使用していますが、パスとパス名が壊れることがよくあります。たとえば、プログラムを作成するには、

もちろん、実行可能ファイル/usr/lib/myrpathに逐語的に挿入したいmyprogramのですが、コンパイル対象のARMLinuxターゲットはMinGWまたはMSYSを使用していません。しかし、これが最終的にそれに入るものです:

正確には私が望んでいたものではありません。cmd.exeコマンドラインでGCCを直接呼び出すと、実行可能ファイルで正しいrpathを取得します。MSYSコマンドラインでGCCを呼び出すと、マングルされたrpathが取得されます。cmd.exeコマンドラインからmakeで実行されるMakefileを使用してGCCを呼び出すと、マングルされたrpath(!)が表示されます。

この迷惑な動作をオフにする方法はありますか?

0 投票する
1 に答える
482 参照

c - Linux リンカー/ローダーの検索順序

この質問は、コンパイルおよび動的リンク中にライブラリが検索される方法に関連しています。

この小さなプロジェクトを考えてみましょう:

  • 事業
    • リバ
      • a.hpp
      • a.cpp
    • ライブラリ
      • b.hpp
      • b.cpp
    • main.cpp

a.hpp:

a.cpp:

b.hpp:

b.cpp:

main.cpp:

libb は以下でコンパイルされます:

cd libb; g++ -shared -o libb.so b.cpp

liba は以下でコンパイルされます:

cd liba; g++ -I../libb/ -L../libb/ -lb -shared -o liba.so -Wl,-rpath /full/path/to/project/libb/ a.cpp

main は次のようにコンパイルされます。

g++ -Lliba -la -Wl,-rpath /full/path/to/project/liba/main.cpp

コンパイルはエラーなく終了しますが、a.out を実行すると libb.so が見つかりません。

ldd 出力:

libb.so が 2 回発生することに注意してください。動的リンカがライブラリを見つけることができない場合と、ある場合があります。2 番目のケースでは、liba.so に埋め込まれた rpath を使用していると思います。

もちろん、その問題を解決する方法は複数あります (例: LD_LIBRARY_PATH、main.cpp をコンパイルするときに正しい rpath を埋め込むなど)。だ。

ここまでは、必要なライブラリーを検索するために同じ手順が使用されたと想定しました。私が見逃しているもの、または私が知らない隠された魔法はありますか? :)

(gcc 4.3.4 を搭載した SLED11 ボックスでテスト済み)。

0 投票する
2 に答える
714 参照

macos - Mac OS X 10.7.2 で libjingle をビルドするとリンク エラーが発生する

Mac OS X 10.7.2 で libjingle をビルドしたいと考えています。コンパイラエラーを克服し、リンカエラーに遭遇しました。パス/Developer/libjingle/libjingle-0.6.3/talk/build/dbg/libは存在しますが、システムは不明と言います。どうすればそれを修正して libjingle を実際に動作させることができますか?

0 投票する
2 に答える
10196 参照

cmake - パッケージ付きのCMAKERPATH

cmakeを使用してパッケージを作成しています

私は次の構造を持っています

ここで、lib1とlib2は外部ダイナミックライブラリです。lib1およびlib2と自動的にリンクするようにRPATHを設定するにはどうすればよいですか?