使用OSX Mountain Lion的Qt 5.0和c ++ 11

时间:2012-12-29 12:06:49

标签: c++ macos c++11 qt5

我离开7年后再试一次c ++。我已经下载了最新发布的用于osx的Qt 5.0 sdk,但我无法获得使用Qt Creator编译的基本c ++ 11功能。以下声明:

auto i = 3;

导致编译错误:

mainwindow.cpp:19: error: ISO C++ forbids declaration of 'i' with no type

我已经谷歌周围的类似问题,并找到建议

QMAKE_CXXFLAGS += -std=c++11
  or
CONFIG += c++11
<。>在.pro文件中。遗憾的是没有成功。构建在无法识别的命令行选项上失败。

我一定是做错了。有什么建议?

谢谢,

弗兰斯

3 个答案:

答案 0 :(得分:3)

它看起来像Qt Creator for Mac bug。 我用

修复了它
QMAKE_CXXFLAGS += -std=c++11 -stdlib=libc++ -mmacosx-version-min=10.7
LIBS += -stdlib=libc++ -mmacosx-version-min=10.7
<。>文件中的

答案 1 :(得分:1)

我不知道这对你来说是否还是个问题。

在我目前的系统上(Max OS X Yosemite - Qt 5.4 - QtCreator 3.0 - XCode 6.1.1),这就像一个魅力:

在.pro文件中:

macx {
    QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.7
    QMAKE_CXXFLAGS += -mmacosx-version-min=10.7
    QMAKE_CFLAGS += -mmacosx-version-min=10.7
    QMAKE_MAC_SDK = macosx10.9
}

macx {
    QMAKE_CXXFLAGS += -std=c++11 -stdlib=libc++
    QMAKE_CFLAGS += -std=c++11 -stdlib=libc++
}
CONFIG += c++11

确保您也安装了最新的Mac OS X SDK。

答案 2 :(得分:0)

根据gcc feature list,从auto开始支持gcc 4.4

g++ -std=c++0x

你也可以试试gcc-specific表格:

g++ -std=gnu++0x

也许,在您的情况下,会出现另一个问题(g ++参数未正确提升到编译器)。