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} ")

相关推荐
尽兴-6 小时前
Mac「brew」快速安装Redis
数据库·redis·macos·brew
尽兴-6 小时前
Mac 「brew」快速安装MySQL
mysql·macos·adb·brew
明似水9 小时前
macOS 更新后找不到钥匙串访问工具的解决方案
macos
一牛14 小时前
Appkit: 菜单是如何工作的
macos·ios·objective-c
tkevinjd14 小时前
文件操作、流对象示例
macos·objective-c·cocoa
Dachui_11222 天前
MacOS上如何运行内网穿透详细教程
macos
Bruce_Liuxiaowei2 天前
使用Python脚本在Mac上彻底清除Chrome浏览历史:开发实战与隐私保护指南
chrome·python·macos
iFlyCai2 天前
对Mac文字双击或三击鼠标左键没有任何反应
macos·计算机外设
請你喝杯Java2 天前
Mac上Cursor无法安装插件解决方法
macos·cursor·vsode
网络之路Blog2 天前
【实战中提升自己】内网安全部署之端口隔离与MAC地址认证
安全·macos·网络之路一天·华为华三数通基础·华为华三企业实战架构·华为中小型企业实战·华为华三计算机网络基础