問題タブ [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.
erlang - ソースからErlang OTPをビルドするOpenSSLエラー
システムにインストールされているライブラリとは独立して移動できる、完全に自己完結型の OTP を構築しようとしています。
次のように、ソースから OpenSSL 1.0.0d をビルドします。
次に、OTP R14B03:
Make of Erlang は次のように失敗します。
Ubuntu 10.04 について話しています。どんな助けでも大歓迎です-ありがとう!
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)が見つかった場所の前にが追加されますか?
もしそうなら、どうすればこの問題を修正できますか?
よろしくジョン
makefile - makefile で RPATH を指定するには?
バイナリで rpath を指定しようとしています。私のメイクファイルは次のようになります-
しかし、コマンドreadelf -a ./main | grep rpath
を使用してrpathを照会すると、rpathを指定しようとしても何も得られませんLDFLAGS= "-rpath=../libs/"
が、それでもうまくいかないようです。
メイクファイルで rpath を指定する方法について、誰かが例を投稿できますか?
GCC と ld のバージョンは -
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 を使用するようになりました。これはこれを行う正しい方法ですか?
macos - Mac OS XのCmake、フルパスでライブラリをリンク
cmakeでPython拡張機能を構築しようとしています。これはcmakeリストです:
ライブラリは正しくコンパイルおよびリンクされていますが、otoolを使用して気に入ったライブラリを見ると、次のようになります。
CMakeにdrtile.soをvigranumpycore.soおよびlibboost_python.dylibへのフルパスにリンクさせるにはどうすればよいですか?ありがとう!
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(!)が表示されます。
この迷惑な動作をオフにする方法はありますか?
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 ボックスでテスト済み)。
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 を実際に動作させることができますか?
cmake - パッケージ付きのCMAKERPATH
cmakeを使用してパッケージを作成しています
私は次の構造を持っています
ここで、lib1とlib2は外部ダイナミックライブラリです。lib1およびlib2と自動的にリンクするようにRPATHを設定するにはどうすればよいですか?