私のやりたいことは、自分のプロジェクトをビルドするときにリンカーが共有ライブラリ(.so)のコピーを使用するようにCMakeListsファイルを設定することです私のビルドツリーで実行可能ファイルをリンクしていますが、リンクされた実行ファイルにrpathを設定していないので、ローダーがそれを要求したときにシステムがライブラリを提供する必要があります。CMake:リンクで使用されている単一のライブラリにrpathを設定しない
具体的には、システムライブラリとしてlibOpenCL.soがインストールされていないビルドファームで、ビルド時にlibOpenCL.soとリンクしたいとします。これを行うには、libOpenCL.soがプロジェクトビルドツリーにあり、CMakeListsファイルの絶対パスを使用して参照されます。この絶対パスは、システムにlibOpenCL.soがインストールされていても使用されていないことを保証することです。
しかし、最終実行ファイルを実行しているとき、CMakeはrpathへの絶対パスを追加しました。このパスは、ライブラリローダが選択したlibOpenCL.soのシステムバージョンを停止して使用します。
シンプルなようですが、わかりません。
ありがとうございます!
CMakeに自動生成させる代わりに、RPATH設定を完全に制御することができます。 [CMakeでRPATHを渡す](https://cmake.org/Wiki/CMake_RPATH_handling)に関するwikiを参照してください。 – Tsyvarev