2012-12-29 80 views
3

我在给C++ 7年后再次尝试一次。我已经下载了最新发布的用于osx的Qt 5.0 sdk,但是我无法获得使用Qt Creator编译的基本C++ 11功能。下面的语句:Qt 5.0和C++ 11与OSX Mountain Lion

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文件。不幸的是没有成功。构建失败了无法识别的命令行选项。

我一定在做错事。有什么建议么?

感谢,

弗兰斯

+0

你安装了什么编译器(和版本)? – Mat

+0

我有最新版本的xcode以及随附的命令行工具:版本4.5.2(4G2008a)。在Xcode本身中,使用C++ 11功能是没有问题的。此外,建设增加1.52只是工作。 – user1936348

+0

GCC 4.5没有'C++ 11'标准模式,而是'C++ 0x'。 – Mat

回答

0

按照gcc feature listauto是因为gcc 4.4通过支持:

g++ -std=c++0x 

你也可以尝试gcc-specific形式:

g++ -std=gnu++0x 

也许,在你的情况,会发生一个额外的问题(g ++参数没有正确地提升到编译器)。

+0

谢谢。不幸的是不幸运。我怀疑这个问题与Mac版Qt 5.0 sdk的构建方式有关(铿锵vs.g ++)。但是我对XCode工具和/或Qt知之甚少。我没有发现Qt文档在这方面很有帮助。 – user1936348

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 

在.pro文件

1

我不知道这是否仍是你的问题。

在我目前的系统(最大OS X的优胜美地 - Qt的5.4 - 3.0 QtCreator - 的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。