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

macos - Mac で rpath を使用してリンクするように scons を設定するには?

RPATHを使用してタスクをリンクするためにUbuntuでは機能しますが、Macでは機能しません

Ubuntu で を使用するlddと、共有ライブラリが絶対パスでリンクされていることがわかります。しかしotool -L、Macで使用すると、Sconstructファイルのトップディレクトリへの相対パスが得られます。scons を使用して Mac で RPATH を正しくセットアップした人はいますか?

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

linux - 共有オブジェクト ファイルの rpath

実行可能ファイルのrpathは、実行時に共有オブジェクトを検索する 1 つ以上のディレクトリを指定します。

私の質問は、共有オブジェクト ファイル自体にも静的にコンパイルされたrpaths があるかどうかです。

最近、共有オブジェクトとリンクするときにランタイム エラーが発生しました。

このエラーは、実際にはライブラリ自体mylib.soが静的にコンパイルされていることを示していrpathます。

私の理解では、それrpathは実行可能ファイルにのみ適用され、共有オブジェクトには適用されませんでした。rpath 共有オブジェクトにも適用されますか?

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

c - cmocka のインストール中に Mac OS X で RPATH の問題を処理するにはどうすればよいですか?

cmockaMac OSX Yosemite 10.10.3 で単体テスト用のライブラリをインストールして実行しようとしていますが、設定に問題がありRPATHます。

アップデート:

cmocka.h@baf のおかげで、次のように手動で CMakeLists.txtに含めることができました。

しかし、なぜ手動で行わなければならないのでしょうか。


私はすでにそれをインストールするさまざまな方法を試しました:

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

  1. ここから cmocka をダウンロードします。バージョン 1.0。

  2. tar xvf cmocka-1.0.1.tar.xz

  3. cd cmocka-1.0.1mkdir buildおよびcd build

  4. sudo cmake ..
    ここに次のようなメッセージが表示されます。

-- 設定完了

CMake 警告 (開発者):

ポリシー CMP0042 が設定されていません: MACOSX_RPATH はデフォルトで有効になっています。ポリシーの詳細については、「cmake --help-policy CMP0042」を実行してください。cmake_policy コマンドを使用してポリシーを設定し、この警告を抑制します。

MACOSX_RPATH は、次のターゲットに対して指定されていません。

cmocka_shared

この警告は、プロジェクト開発者向けです。-Wno-dev を使用して抑制します。

質問 1:rpath上記のような警告が表示されないようにするにはどうすればよいですか?

  1. 須藤make

  2. 須藤make install

  3. cmocka今すぐインストールする必要がありますよね?


ライブラリcmakeを使用している私のプログラムを実行しています。cmocka

だから今cmake、私は自分のプログラムを実行し、メインCMakeList.txtファイルには次のような行があります:

しかし、この段階では警告は表示されないので、コンピューター上でfind_libarary(CMOCKA cmocka)正常に検出cmockaされたと思います。

make私のプログラムのために走っています。

実行make中に次のようなエラーが発生します。

だからきっとcmocka見つからない…。

質問 #2:cmockaライブラリが見つからないのはなぜですか?


その他の注意事項:

  1. 走ってみた

    /li>

しかし、それは役に立ちませんでした。MacではなくLinux向けのソリューションだと思います。

  1. ここの公式ドキュメントからRAPTHMacについて何かを学ぼうとしました: http://www.cmake.org/Wiki/CMake_RPATH_handling。しかし、私はほとんど理解できず、問題の解決策を思いつくことができませんでした。cmake

  2. cmockaを使用してインストールしようとしましbrewたが、同じ結果が得られました。

  3. RPATHさらに、 SO 、リンク、およびに関する多くの質問を読みましcmockaたが、適切な解決策も見つかりませんでした。それでも、関連するスレッドのリストは次のとおりです。

  4. 私は走っotool -L cmockaた。これが私が得たものです:

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

macos - OSX: ランタイム依存の dylib でアプリを起動する

OSX 10.10 ヨセミテ。
私のアプリケーションはインテル® IPP に依存しています。コンパイル時には 2 つの dylib に依存しますが、これらは実行時にロードされる (otool -L では表示されない) 他の dylib に依存します。アプリケーションを起動すると、これらのライブラリが見つかりません。

アプリ (またはコンパイル時間に依存する dylibs)に対してフォルダーを指定して、ランタイム dylibs のパスを検索する方法がわかりません。

私が理解できる限り、rpath を使用する必要があります。しかし、具体的に何をすべきでしょうか?ランタイム検索パスを設定するには? 実行可能ファイルまたは dylib に「rpath」を設定する必要がありますか?

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

macos - CMAKE_MACOSX_RPATH を使用してビルド ツリー外のライブラリをリンクする

この問題は MacOS X 固有の問題です。lib_xxxビルド ツリーの外にある任意の場所にあるライブラリをリンクしたいと思います。すべてのシステムで同じ場所にあります。デフォルトでは、CMake は次のように依存関係を追加します。

@executable_path次のいずれかに変更する方法を知りたいです。

  1. ライブラリへの絶対パス。たとえば、次のotool出力が表示されます

    /li>
  2. @rpathlib_xxxその後、を使用して場所を管理できましたRPATH。私はこのオプションを好みます。

ドキュメントとフォーラムからCMAKE_MACOSX_RPATH、問題を解決してオプション (2) を実装する必要があるようです。それでも、CMakeLists.txt以下は依然として@executable_path/libwupienginemac.dylib依存関係をもたらします。

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

c++ - cmakeでLinuxバイナリのrpathを指定する方法

このようなコード行を含む CMakeLists.txt ファイルがあります。

実行可能ファイルをビルドして実行すると

その上に、dir_a、dir_b、dir_c の RPATH が表示されます。

作成したい場合、cmakeで何ができますか

  • 空の RPATH で実行可能ですか?
  • いくつかのパスで実行可能ですが、link_directories 行で指定されていませんか?

実行可能ファイルは「インストール」されるべきではありません。