問題タブ [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.
java - クラスパスを JNI ライブラリの @rpath にすることは可能ですか?
JNI が依存しているライブラリがあり、クラスパスに対して相対的にロードしたいのですが、可能ですか?
linux - QMake で RPATH の順序を設定する
Linux Qt プログラムがあります。実行可能ファイルのディレクトリにある (動的) Qt ライブラリが存在する場合はそれを優先的に使用し、そうでない場合はシステムの Qt ライブラリを使用するようにしたいと思います。救助へのRPATH。
次の行をqmakeの .pro ファイルに追加します。
結果の実行可能ファイルをreadelfで見ると、次のようになります。
正しいようですが、lddはシステム バージョンを使用していることを示しています。
qmake の結果の Makefile を手動で編集して 2 つの rpath の順序を交換すると、$ORIGIN が /usr/local/... の後に来るため、正しい動作が得られます。
私の問題は、qmakeが最終的な LFLAGS 変数を構築する方法にあります。システム ライブラリの後に追加 ($ORIGIN) を追加する方法がわかりません。何か案は?
python - dyld の解決方法: Myo の Python ラッパーでのライブラリが読み込まれていないというエラー
ということで、ミョーの腕章をいじっています。そして、そのための Python ラッパー / バインディングがいくつかあることがわかりました ( https://github.com/smartin015/MYO-python )。ただし、サンプルを実行しようとするとエラーが発生します。
私は@rpathが何であるかを読むためにここに行きました:https://mikeash.com/pyblog/friday-qa-2009-11-06-linking-and-install-names.html
また、StackOverflow で他の同様の質問を探しています。しかし、これまでのところ、これをどこから解決し始めればよいのかよくわかりません。
では、「理由: 画像が見つかりません」とはどういう意味ですか? また、このエラーをどのように解決すればよいですか?
私はOSX 10.10.1を実行しており、2.7.6で出荷された標準ストックpythonを使用しているだけで、/usr/bin/pythonが不足しています
ありがとう!
c++ - 同一システム上の libstd++.so と libc.so の 2 つのセット
アップグレード不可能な Linux カーネルが実行されている ARM デバイスがあります。その上でいくつかの C++11 プログラムを実行したいのですが、システムlibstdc++.so.6
がlibc.so.6
古すぎて実行時に C++11 をサポートできません。新しいライブラリのコピーを持っていますが、古いライブラリではなく新しいライブラリを使用するようプログラムに指示する方法がわかりません。という新しいディレクトリを作成し/tmp/newlibs
、新しい共有オブジェクトのコピーをそこに置きました。次に、次のフラグでコンパイルしました。
g++ -std=c++11 -Wl,-rpath,/tmp/newlibs test.cpp -o test
しかし、ファイルを実行しようとすると、次のエラーが発生します。
明らかに、rpath
フラグはlibstdc++
では機能しましたが、 の新しいバージョンでは機能しなかったようですlibc.so.6
。私がここに欠けているものはありますか?libstdc++.so.6
変更できないハードコードされたパスがありますか?
これはこの質問と非常によく似た問題だと思いますが、私の場合、新しい glibc ディレクトリを十分に活用していません。
編集: 何らかの理由で動的リンカーが新しい libc をスキップしているようです。libc.so.6
を使用してプリロードしようとするとLD_PRELOAD
、次のようになるためです。
ERROR: ld.so: object '/tmp/newlibs/libc.so.6' from LD_PRELOAD cannot be preloaded: ignored.
ios - カスタム フレームワークがロードされていません dyld: ライブラリがロードされていません: @rpath/Custom.framework/
Xcode 6.2 の SDK として iOS 8 を使用していることを意味する、いくつかのカスタム動的フレームワークを備えたアプリがあります。私の Mac は Yosemite 上にあります。フレームワークには Swift のソースとリソースがあります。
このアプリは分散エンタープライズなので、IPA を作成し、ユーザーがアプリをダウンロードしてインストールできる Web ページを介して社内に配布します。
このアプリは、iPhone 5(iOS 8.1.2)、iPod Touch(iOS 8.2)、およびシミュレーターにインストールして実行できますが、iPhone 6(iOS 8.1.2) にはインストールできません。エラーは常に dyld: Library not loaded: @rpath/Custom.framework/ です。フレームワークを削除して再度追加して修正しようとすると、別のフレームワークが iPhone 6 にロードされていないとしてポップアップ表示されます。
以下が設定されました。
- @executable_path/フレームワーク
- 埋め込みコンテンツには Swift コードが含まれています - はい
- 組み込みバイナリのフレームワーク
- 組み込みフレームワーク
- バイナリをライブラリにリンクする
これらの問題の原因と、アプリがすべてのデバイスと iOS 8 バージョンで一貫して実行されるようにするためにできること.
私が見つけた解決策のほとんどは、試行錯誤の提案です。
c - elf rpath が機能していません (共有オブジェクト ファイルを開けません: そのようなファイルまたはディレクトリはありません)
実行可能ファイルに独自のディレクトリからいくつかの共有ライブラリをロードさせようとしているので.
、rpath に追加することにしました。しかし、実行しようとすると、.so が見つかりません。readelf -d myexec の結果の重要な部分は次のとおりです。
私のフォルダには以下が含まれています:
エラー :
注:LD_LIBRARY_PATH環境変数へのアクセス権がなく(実際には存在しません)、他のライブラリは/ libフォルダーにあり、正常にロードされています(ただし、libtoload.so.1を配置できません)そこの。私は実際に別のコンピューターから実行可能ファイルをクロスコンパイルしていますが、ターゲットシステム上のいくつかのコマンドにしかアクセスできません(ツールチェーンはなく、ほとんどがビジーボックスコマンドです)。
編集: /lib/ld-linux.so.3 --library-path ./ ./myexec は機能します
linker - rpath 値をシンボリック リンクにすることはできますか?
makefile では、このようにリンカに rpath を渡しています
すべてが機能しますが、私がそうするとき
どこで ~/symlink -> /absolute_path_to_folder_with_lib ライブラリがロードされていません rpath の値をシンボリック リンクにできますか?
c++ - 同じディレクトリを指すライブラリ検索パスを使用して MacOS で動的ライブラリをコンパイルする (CMake)
CMake を使用して MacOS で dylib をコンパイルしようとしています。私のライブラリは他のいくつかのライブラリに動的にリンクされており、それらを私のライブラリと一緒に出荷したいと考えています。このために、ライブラリをロードするときに、依存ライブラリがその場所に関係なく同じフォルダーからロードされるようにする必要があります。rpath と関係があると思いますが、私は専門家ではありません。CMake を使用してこれを実現する方法を提案できますか? (-Wl、-rpathなどを介していくつかのリンカーオプションを提供する必要があると思います
前もって感謝します!