問題タブ [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 投票する
1 に答える
862 参照

c++ - pkg-config: -rpath を設定するためのベストプラクティス?

出力に基づいて-rpathlibtoolを設定するベスト プラクティスはありますか? トリックに頼る必要がありますか?-Rpkg-configsed

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

macos - OS X での Rust とローダーのパス (@rpath、@loader_path)

Rust を使用した外部ライブラリの読み込みに関する問題を解決しようとしています。

入力:

実行可能ファイルrtestと dylibがありlibcpp2rs.dylibます。ライブラリは、FFI を介して実行可能ファイルにリンクされています。

私のbuild.rsファイル(libcpp2rs.dylib場所に追加の引数を渡しています):

そして私のCargo.tomlファイル:

そしてcargo build、コンパイルにはコマンドを使用します。

出力:

otoolライブラリが次のようにロードされることを示していますRPATH

しかし同時にLC_LPATH、実行可能ファイルにはセクションがありません:

そして、それは私のアプリケーションを読み込みエラーに導きます:

この問題は使用法によって修正できますがinstall_name_tool、コンパイル プロセスに追加の手順を導入しないことをお勧めします。

  1. cargo構成/ビルドスクリプトを使用して、ロードタイプを @rpath から @loader_path に変更することは可能ですか?
  2. @rpath 値をに渡すことは可能cargoですか?
0 投票する
0 に答える
105 参照

dll - Windows でコンパイル時に .dll の絶対パスを指定できますか?

1 つの .dll (ダイナミック リンク ライブラリ) を作成しました。このライブラリを使用して、実行ファイルを作成したい。

しかし、.exe とリンクする .dll の絶対パスを提供したいと考えています。したがって、.exe を実行すると、.dll とリンクします。

PATH(環境変数)を設定したくない、.dllをシステムディレクトリまたは実行可能ファイル内の同じディレクトリに配置したくない。-rpath オプションを使用して Linux にアクセスできることを知っています。

私は窓が初めてです。ウィンドウで rpath equal オプションを見つけようとしましたが、失敗しました。

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

c++ - C++ 動的にリンクされたライブラリが実行可能ファイルに見つかりません

.soパスに があり、 を指すようにビルドされた/home/test/lib/libTest.soという実行可能ファイルがあります。しかし、私がしたとき、それは見つかりませんでした、そしてそれが機能するために私はしなければなりませんでした.myexecRPATH/home/test/lib/lddmyexeclibTest.soexport LD_LIBRARY_PATH

私は確認しました:

  1. libTest.soに存在します/home/test/lib/
  2. objdump -x myexec | grep RUNPATH/home/test/lib/実行可能ファイルに組み込まれていることを示します。

設定せずにライブラリが見つからなかった理由を知っている人はいますLD_LIBRARY_PATHか?

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

c++ - OS X で Bazel を使用して C++ の rpath を設定するにはどうすればよいですか

私は自分のBUILDファイルに以下を追加しようとしました:

しかし、実行可能ファイルをチェックすると

は含まれませんpath/to/add。bazel を使用して実行可能ファイルの rpath を変更するにはどうすればよいですか。

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

gcc - rpath の正しい使い方 (相対 vs 絶対)

バイナリまたはライブラリをビルドするときrpath、つまり

バイナリの実行時に必要なライブラリを見つける場所をリンカに指示します。

ここでの絶対パスと相対パスに関する UNIX の哲学は何ですか? どこからでもライブラリを見つけることができるように、絶対パスを使用する方が良いですか? または、ディレクトリ全体をコピーしたり、より高いレベルのパスの名前を変更したりしても、バイナリが使用できなくなることがないように、相対にする方がよいでしょうか?

アップデート

を使用する$ORIGINのが、通常、バイナリを構築するための推奨される方法です。ライブラリの場合、絶対パスを入力するのが好きです。そうしないと、ライブラリにリンクできなくなるからです。シンボリック リンクは、リンクではなく、リンク$ORIGINのパスを指すようにを変更します。

0 投票する
0 に答える
657 参照

gcc - 共有ライブラリの gcc リンク: $ORIGIN による二次的な依存関係

これは、これに対するフォローアップの質問です

$ORIGINオプションで使用する-rpathと、ライブラリを使用する場所に関係なく、常に指定された場所を指す動的絶対パスが生成されることを理解しています。

私を混乱させているのは、次のことです。このライブラリを使用して共有バイナリを生成し、バイナリが常にライブラリを検索できるようにするための-Wl,-rpathオプションを(再度) 設定します。$ORIGIN現在、$ORIGINライブラリの元の値は使用できなくなっているか、新しいライブラリによって上書きされているように見えるため、間違っています。

独自の を持つ新しい共有オブジェクト (バイナリ) を生成しているので、これはどういうわけか理解できます$ORIGIN。これを回避する方法は、バイナリ-rpathに両方の場所を提供することです。ライブラリへの場所とライブラリ自体が必要とする場所です。私の意見-rpathでは、ライブラリにリンクしてその場所を指定することはできず、ライブラリの依存関係の場所も指定する必要があるため、これはほとんど役に立ちません。

私の質問:-rpathを使用して階層値を指定する方法はあります$ORIGINか? 明らかに私の問題を解決する絶対パスを避けたいと思います。

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

c++ - Qt: Mac でのリンク フレームワーク: rpath の使用

Qt でカスタム フレームワークを作成したいと考えています。フレームワーク自体を作成することはできますが、Qt を実行するとフレームワークが見つかりません。

理由は単純です。バイナリは、フレームワークを探す場所を認識していません。

バイナリで otool を使用したところ、次のようになりました。

だから、私の質問は次のとおりです(詳細については、以下のものを確認してください):qmakeにライブラリのパスを設定するように指示するにはどうすればよいですか:

qmakeでこれを行う方法はありますか? でこれを変更する方法は知っていますinstall_name_toolが、.pro ファイルに直接追加したいと思います。


私がこれまでにやったこと:

pro ファイルを変更してバイナリの rpath に変更し、ビルド時にライブラリが配置されているパスを含めます。

このようにして、.rpath を使用せずに、リリースの rpath を簡単に変更できますinstall_name_tool。ただし、これを機能させるには、最初の行を次のように変更する必要があります。

アプリケーションのプロファイル ファイルで、次のように指定しました。

最後の欠けている部分は、 を追加する方法@rpath/です。ご協力いただきありがとうございます。

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

macos - dylib検索パスOSXを設定する方法

Xcode にプロジェクトがあり、環境変数ペインで DYLD_FALLBACK_LIBRARY_PATH を設定して、アプリケーションがリンク先のライブラリを探す場所を設定します (これは私の目的に適しています)。

ここに画像の説明を入力

現在、このプロジェクトを生成する CMakeLists.txt ファイルを作成しており、スクリプトからこのプロパティを設定したいと考えています。

私はこれができることを知っています:

しかし、実行すると次のエラーが発生します。

アプリケーションを起動するとき。声明は同じではないと思います。

CMakeLists.txt から Xcode にあるものと同等のものをどのように達成できるか誰かが知っていますか?

私はCMake RPATHのことを漠然と認識していますが、可能であれば避けたいと思います。

お時間をいただきありがとうございます!

乾杯!

トム