MacOS の CMake でターゲットに複数の RPATH ディレクトリを設定するにはどうすればよいですか? Linux では、コロンで区切られたリストを使用できます。
set_target_properties(mytarget
PROPERTIES
INSTALL_RPATH "\$ORIGIN/../lib:\$ORIGIN/../thirdparty/lib"
)
MacOS では、コロンで区切られたリストを技術的に追加してotool -l
表示することができますが、これらのディレクトリは検索されません。
set_target_properties(mytarget
PROPERTIES
INSTALL_RPATH "@loader_path/../lib:@loader_path/../thirdparty/lib"
)
通常、MacOS で複数の RPATH ディレクトリを持つ場合、複数のリンカー フラグを送信すると、これらのフラグはotool -l
. 何かのようなもの:
g++-mp-4.7 mytarget.cpp -o mytarget -Wl,-rpath,@loader_path/../lib,-rpath,@loader_path/../thirdparty/lib
これにより、次のことが得られます。
Load command 15
cmd LC_RPATH
cmdsize 32
path @loader_path/../lib (offset 12)
Load command 16
cmd LC_RPATH
cmdsize 48
path @loader_path/../thirdparty/lib (offset 12)
この動作を CMake で再現するにはどうすればよいですか?