对象文件是为较新的OSX版本而不是链接而构建的

pee*_*onn 10 c++ macos xcode gnu-make

我正在使用的C++库出现此错误.它使用GNU Automake进行构建.我应该为make命令降低目标构建平台提供哪些标志,以避免在我试图链接到库的Xcode项目中看到此警告?

cbr*_*rnr 7

您需要将编译器标志设置为-mmacosx-version-min要构建的SDK的版本号。我不使用automake,但是在cmake变量CMAKE_OSX_DEPLOYMENT_TARGETqmake设置变量QMAKE_MACOSX_DEPLOYMENT_TARGET

  • 如果您在使用 QtCreator 时遇到此问题,只需将“QMAKE_MACOSX_DEPLOYMENT_TARGET = xx.xx”添加到您的项目文件中,其中 xx.xx 是用于编译库的 SDK 的版本号 (4认同)
  • 非常感谢 `SET(CMAKE_OSX_DEPLOYMENT_TARGET 12.0)` 为我工作 (2认同)

Mat*_*szL 6

正如cbrnr回答的那样,你必须使用-mmacosx-version-min编译器标志.要通过make传递编译器标志,可以使用CXXFLAGS环境变量:

make CXXFLAGS="-mmacosx-version-min=10.10" <target or other make params>
Run Code Online (Sandbox Code Playgroud)