【发布时间】:2017-08-30 04:30:00
【问题描述】:
我正在使用的 C++ 库出现此错误。它使用 GNU Automake 进行构建。我应该为make 命令提供哪个标志来降低目标构建平台以避免在我尝试链接库的 Xcode 项目中看到此警告?
【问题讨论】:
我正在使用的 C++ 库出现此错误。它使用 GNU Automake 进行构建。我应该为make 命令提供哪个标志来降低目标构建平台以避免在我尝试链接库的 Xcode 项目中看到此警告?
【问题讨论】:
您需要将编译器标志 -mmacosx-version-min 设置为您要构建的 SDK 的版本号。我不使用automake,但在cmake 中设置变量CMAKE_OSX_DEPLOYMENT_TARGET,在qmake 中设置变量QMAKE_MACOSX_DEPLOYMENT_TARGET。
【讨论】:
QMAKE_MACOSX_DEPLOYMENT_TARGET = xx.xx 添加到您的项目文件中,其中 xx.xx 是用于编译库的 SDK 的版本号
正如 cbrnr 回答的那样,您必须使用 -mmacosx-version-min 编译器标志。要通过 make 传递编译器标志,可以使用 CXXFLAGS 环境变量:
make CXXFLAGS="-mmacosx-version-min=10.10" <target or other make params>
【讨论】:
当将./configure 用于许多包时,macosx-version-min 设置默认为特定的操作系统版本 - 如果该操作系统版本低于编译链接库的macosx-version-min 版本,则可能导致上述警告消息.但是,这可以通过在运行 configure 之前设置 MACOSX_DEPLOYMENT_TARGET 环境变量来控制,例如
MACOSX_DEPLOYMENT_TARGET=10.14 ./configure
【讨论】: