首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OSX: CMake+RPath混淆

OSX: CMake+RPath混淆
EN

Stack Overflow用户
提问于 2017-08-30 23:33:44
回答 1查看 407关注 0票数 1

我有一个正在构建的cmake项目,但在运行时(例如,当运行我的单元测试可执行文件时),它不能链接我的dylib依赖项之一。查看"otool -L“的输出,我看到了一长串以@rpath为前缀的dep,除了一组令人不快的lib(它们都来自同一个包)之外,它们都没有这个前缀。下面是一个有代表性的例子,其中违规者是libicu* libs:

@rpath/libboost_date_time.dylib ... libicui18n.44.dylib ... libicuio.44.dylib ... @rpath/libQt5DBus_debug.5.dylib ...

在构建时,我能做些什么来获取这些dep上的@rpath前缀吗?查看cmake RPATH docs,我觉得可以设置RPATH,但默认情况下它是正确的,包括所有链接库路径……我不清楚如何确保lib本身使用rpath。在构建时,我能做些什么来确保在dep名称上有@rpath前缀?

EN

回答 1

Stack Overflow用户

发布于 2018-10-06 20:33:12

从2.8.12版本开始,CMake就有了一些特殊的魔力,它后来得到了额外的设置,并很快被设置为默认设置。

在目标上使用适当的MACOSX_RPATH,以便在OSX上正确初始化rpath。

策略CMP0042控制这是否是默认行为。

https://cmake.org/cmake/help/v3.0/prop_tgt/MACOSX_RPATH.html#prop_tgt:MACOSX_RPATH https://cmake.org/cmake/help/v3.0/policy/CMP0042.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45964484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档