cmake - 使用 otool -L 只显示库名称而不是它链接到的路径
问题描述
假设我有 Player.app,我在构建阶段链接到 foo.dylib。当我这样做时otool -L Player.app/Contents/MacOS/Player
,这就是我得到的
foo.dylib (compatibility version 1.0.0, current version 1.0.255)
/System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate (compatibility version 1.0.0, current version 4.0.0)
/System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox (compatibility version 1.0.0, current version 1000.0.0)
/System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (compatibility version 2.0.0, current version 164.0.0)
/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 23.0.0)
/System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/CoreAudioKit.framework/Versions/A/CoreAudioKit (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/CoreMIDI.framework/Versions/A/CoreMIDI (compatibility version 1.0.0, current version 69.0.0)
/System/Library/Frameworks/DiscRecording.framework/Versions/A/DiscRecording (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1770.255.0)
/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0)
/System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore (compatibility version 1.2.0, current version 1.11.0)
/System/Library/Frameworks/WebKit.framework/Versions/A/WebKit (compatibility version 1.0.0, current version 610.3.7)
/opt/homebrew/opt/llvm/lib/libc++.1.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1292.60.1)
/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 2022.20.117)
/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 54.0.0)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1770.255.0)
/System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics (compatibility version 64.0.0, current version 1463.2.1)
/System/Library/Frameworks/CoreImage.framework/Versions/A/CoreImage (compatibility version 1.0.1, current version 5.0.0)
/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 1122.11.0)
/System/Library/Frameworks/CoreText.framework/Versions/A/CoreText (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
注意第一行只说foo.dylib
. 为什么会发生这种情况,它应该链接到哪里?
我构建应用程序的方式是使用 CMake 和 Conan 来导入 foo.dylib(我自己将其上传到私人 Conan 服务器中)。
解决方案
推荐阅读
- python - 基于索引和另外 2 列的列的平均值
- d3.js - 在 svelte 上使用 Leaflet-d3
- sql-server - 如何使用 sql server 2016 比较基于两个关键列的单个列的数据?
- utf-8 - WSO2 MI 正在替换土耳其字符,即使请求 json 中的 charset=UTF-8
- python - python conda - 创建了一个新环境,但它仍然在基础环境中使用 python
- django - 如何在 django 的一个页面中提交相同的表单
- linkedin - 如何通过php中的api获取用户链接帐户的个人资料标题
- amazon-web-services - 由于错误的过滤器表达式,我无法从 aws lambda 查询我的 dynamodb 表?
- java - 无法使用 javamail 和 zimbra 服务器发送电子邮件
- pyspark - 在 Spark 数据框中的列表中查找最大值