【发布时间】:2017-01-09 04:59:18
【问题描述】:
注意:与this问题相同,但适用于其他IDE
我正在尝试在 Qt Creator IDE 中编译我的 Qt 项目,但是当我点击构建时,它显示:
此文件需要编译器和库支持 \ 适用于 ISO C++ 2011 标准。必须启用此支持 \ 使用 -std=c++11 或 -std=gnu++11 编译器选项。
当我转到项目 -> 构建和运行 -> 构建步骤 -> 附加参数并添加 -std=c++11 并再次编译时,我在编译输出中得到了这个:
11:45:37:运行 Youtube-dl-gui 项目的步骤...
11:45:37:开始:“/usr/lib/x86_64-linux-gnu/qt5/bin/qmake”/home/fabio/criação/Youtube-dl-gui/Youtube-dl-gui.pro -r -spec linux-g++-64 CONFIG+=debug -std=c++11
用法:/usr/lib/x86_64-linux-gnu/qt5/bin/qmake [模式] [选项] [文件]
...
[这里显示更多使用选项]
...
***未知选项 -std=c++11
11:45:37:进程“/usr/lib/x86_64-linux-gnu/qt5/bin/qmake”退出,代码为 1。
构建/部署项目 Youtube-dl-gui 时出错(套件:桌面) 执行步骤“qmake”时 11:45:37:经过时间:00:00。
在我的 MakeFile 配置文件中:
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = Youtube-dl-gui
TEMPLATE = app
SOURCES += main.cpp\
mainwindow.cpp
HEADERS += mainwindow.h
FORMS += mainwindow.ui
QMAKE_CXXFLAGS += '-std=c++11'
我已经尝试过这些帖子中提出的建议:
Adding -std=c++11 to compiler options in Anjuta 3.4.3
Qmake doesn't use stdc++11 compilation flag
更新
- 更改为
CONFIG += c++11无效 - 我的项目编译器是
/usr/bin/g++,如果我运行/usr/bin/g++ --version,则返回5.4.0 20160609
更新 2
我认为我的 gcc 支持 c++11,因为在 NetBeans 中,我可以使用相同的
/usr/bin/g++二进制文件以 c++11 标准构建和运行程序。-
正如编译输出所示,正在运行的命令是
李>"/usr/lib/x86_64-linux-gnu/qt5/bin/qmake" /home/fabio/criação/Youtube-dl-gui/Youtube-dl-gui.pro -r -spec linux-g++-64 CONFIG+=debug -std=c++11,我猜是我的qmake version 3.0不支持c++11,我猜
【问题讨论】:
-
如果你升级到 gcc-6,事情会更简单,因为它默认为 C++14 ;-)
标签: linux qt c++11 gcc qt-creator