如何使用qmake指定目标mac os x版本

时间:2014-06-16 11:55:46

标签: c++ macos qt qmake

我正在尝试使用Qt Creator / qmake在Mac OS X上编译c ++ 11代码,我收到以下错误:

clang: error: invalid deployment target for -stdlib=libc++ (requires OS X 10.7 or later)

当我检查编译命令行时,我注意到它包含-mmacosx-version-min = 10.6标志。我尝试按如下方式更新我的.pro文件,但似乎没有考虑到这一点:

QMAKE_CXXFLAGS += -std=c++11 -stdlib=libc++

macx {
    -mmacosx-version-min=10.7
}

任何建议都会有所帮助。谢谢!

2 个答案:

答案 0 :(得分:8)

您实际上可以添加该部署目标行QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.6 到您的QMake项目文件。您无需重新安装Qt。

但要记住一件事:如果您构建了包含在应用程序包中的任何其他库,请确保它们也是为了向后兼容而编译的!如果它对任何库有帮助,那么同样的CMake命令也是CMAKE_OSX_DEPLOYMENT TARGET

答案 1 :(得分:7)

在查看类似问题之后,确定找到了解决方案:QtCreator build system is broken after OSX upgrade

您可以通过更新Qt安装中的clang的qmake.conf文件来更改最小的Mac OS X目标(我使用的是Qt5.3)。该文件位于Qt安装目录中的Qt / 5.3 / clang_64 / mkspecs / macx-clang / qmake.conf 更新版本如下:

#
# qmake configuration for Clang on OS X
#

MAKEFILE_GENERATOR      = UNIX
CONFIG                 += app_bundle incremental global_init_link_order lib_version_first     plugin_no_soname
QMAKE_INCREMENTAL_STYLE = sublib

include(../common/macx.conf)
include(../common/gcc-base-mac.conf)
include(../common/clang.conf)
include(../common/clang-mac.conf)

#QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.6
QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.7

load(qt_config)

请注意,我已经注释了提供Qt安装的默认QMAKE_MACOSX_DEPLOYMENT_TARGET版本。

最后,您还可以在.pro文件中指定要使用的sdk,如下所示:

macx {
    QMAKE_MAC_SDK = macosx10.9
}