QtCreator:`clang:-stdlib=libc++ 的无效部署目标(需要 OS X 10.7 或更高版本)`

Posted

技术标签:

【中文标题】QtCreator:`clang:-stdlib=libc++ 的无效部署目标(需要 OS X 10.7 或更高版本)`【英文标题】:QtCreator: `clang: invalid deployment target for -stdlib=libc++ (requires OS X 10.7 or later)` 【发布时间】:2013-09-01 14:13:39 【问题描述】:

我正在 QtCreator 中编译我的 Qt 5.1.0 项目,我得到以下输出:

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ 
-c -pipe -O2 
-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk
-mmacosx-version-min=10.6 -std=c++11 -stdlib=libc++ -Wall -W -fPIE 
-DQT_NO_DEBUG 
-DQT_WIDGETS_LIB
-DQT_GUI_LIB
-DQT_CORE_LIB
-I../../../Qt/Qt5.1.0/5.1.0/clang_64/mkspecs/macx-clang
-I.
-I../../../Qt/Qt5.1.0/5.1.0/clang_64/include
-I../../../Qt/Qt5.1.0/5.1.0/clang_64/include/QtWidgets
-I../../../Qt/Qt5.1.0/5.1.0/clang_64/lib/QtWidgets.framework/Headers
-I../../../Qt/Qt5.1.0/5.1.0/clang_64/include/QtGui
-I../../../Qt/Qt5.1.0/5.1.0/clang_64/lib/QtGui.framework/Headers
-I../../../Qt/Qt5.1.0/5.1.0/clang_64/include/QtCore
-I../../../Qt/Qt5.1.0/5.1.0/clang_64/lib/QtCore.framework/Headers -Ibuild/debug/.moc
-I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers
-I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/System/Library/Frameworks/AGL.framework/Headers
-I.
-F/Users/apple/Qt/Qt5.1.0//5.1.0/clang_64/lib
-o build/debug/.obj/main.o ./main.cpp


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

XCode 版本:4.6.3

Mac OS 版本:10.8.4

我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

你需要使用:

-stdlib=libstdc++

代替:

-stdlib=libc++

这是因为 /usr/lib/libc++.dylib 仅安装在 OSX 10.7+ 上,并且您已指定 -mmacosx-version-min=10.6

您也可以通过指定:-mmacosx-version-min=10.7 并离开 -stdlib=libc++ 来解决此问题,这样您将获得更好的 C++11 支持。

【讨论】:

Thx~~ Makefile 是由 qmake 自动生成的,我可以通过修改我的 .pro 文件来解决这个问题吗? 你可能可以,覆盖错误的变量,但是更长期的解决方案是修改 qmakespec 文件。

以上是关于QtCreator:`clang:-stdlib=libc++ 的无效部署目标(需要 OS X 10.7 或更高版本)`的主要内容,如果未能解决你的问题,请参考以下文章

使用带有 clang++ -stdlib=libc++ 的 libstdc++ 编译库

“Qt Creator 2.4.1 for Windows (53 MB)”是不是包含 mingw 或 clang? [关闭]

如何在 QtCreator 中进行远程编译

如何使 qtcreator 与 c++11 一起工作

如何使用 ClangCodeModel 插件在 QtCreator 中设置 C++ 标准?

如何使用 clang++/libc++ 编译/链接 Boost?