mac上cmake编译的库A,给其他库B使用报错ld64.lld: error

ld64.lld: error xxxx.a(xxx.c.o) has version 13.5.0, which is newer than target minimum of 10.11.0

根本原因: 在mac上编译库B时,macosx-version-min为10.11,即macosx sdk的最低版本

所以要求cmake编译的库A也应该指定macosx-version-min为10.11

CMakeLists.txt中添加

SET(CMAKE_OSX_DEPLOYMENT_TARGET 10.11)

另外,编译B库时,根据B库的要求,没有使用xcode最新的sdk版本,而是自己下载的MacOSX11.3.sdk,这个也可以在CMakeLists.txt中指定

A库是c语言库,所以设置CMAKE_C_FLAGS

set(CMAKE_OSX_SYSROOT /Users/project/MacOSX11.3.sdk)

//该项不需要添加,CMAKE_OSX_SYSROOT定义后就会自动会转化为-isysroot /Users/project/MacOSX11.3.sdk

set(CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS} --sysroot ${CMAKE_OSX_SYSROOT} ")

相关推荐
HerayChen2 小时前
HbuildderX运行到手机或模拟器的Android App基座识别不到设备 mac
android·macos·智能手机
hairenjing11232 小时前
在 Android 手机上从SD 卡恢复数据的 6 个有效应用程序
android·人工智能·windows·macos·智能手机
小李飞刀李寻欢4 小时前
Mac电脑如何解压rar压缩包
macos·rar·解压
Java小白笔记4 小时前
Mac中禁用系统更新
macos
AndyFrank4 小时前
mac crontab 不能使用问题简记
linux·运维·macos
Mac新人4 小时前
一招解决Mac没有剪切板历史记录的问题
macos·mac
王拴柱5 小时前
Mac保护电池健康,延长电池使用寿命的好方法
macos·mac
daa205 小时前
macos中安装和设置ninja
macos
Java小白笔记6 小时前
Mac解决 zsh: command not found: ll
macos
小钱c77 小时前
Mac下安装Apache JMeter并启动
jmeter·macos·apache