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

发布时间:2024年01月11日

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

文章来源:https://blog.csdn.net/u011737099/article/details/135453616
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。