3

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

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

谢谢,

弗兰斯

4

3 回答 3

3

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

QMAKE_CXXFLAGS += -std=c++11 -stdlib=libc++ -mmacosx-version-min=10.7
LIBS += -stdlib=libc++ -mmacosx-version-min=10.7

在 .pro 文件中

于 2013-04-02T08:35:18.723 回答
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。

于 2015-01-22T14:47:30.810 回答
0

根据gcc 功能列表,通过以下auto方式支持gcc 4.4

g++ -std=c++0x

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

g++ -std=gnu++0x

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

于 2012-12-30T15:08:54.487 回答