Как установить несколько каталогов RPATH на цель в CMake на MacOS? В Linux, мы можем просто использовать двоеточие список разделенных на:Как установить несколько каталогов RPATH с помощью CMake на MacOS
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"
)
Обычно, если бы у меня было несколько каталогов RPATH на MacOS, я бы послал несколько флагов компоновщика, и эти флаги будут отображаться отдельно с 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?
.. или использовать 'set_property (TARGET)', который принимает многозначное свойство. – Tsyvarev
@wasthishelpful Работал как шарм. Благодаря! – wyer33