如何在我的Qt Creator中的编译器选项中添加-std = c ++ 11?

时间:2017-01-07 14:03:52

标签: linux qt c++11 gcc qt-creator

注意:this问题相同,但适用于其他IDE

我正在尝试在 Qt Creator IDE中编译我的Qt项目但是当我点击构建时,它会显示:

  

此文件需要编译器和库支持\   对于ISO C ++ 2011标准。必须启用此支持   使用-std = c ++ 11或-std = gnu ++ 11编译器选项。

当我去Project - >构建和运行 - >构建步骤 - >其他参数并添加-std=c++11并再次编译,我在Compile输出中得到了这个:

  

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 [mode] [options] [files]

  ...
  [这里显示了更多用法选项]
  ...
  ***未知选项-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,我想

2 个答案:

答案 0 :(得分:3)

如此处http://doc.qt.io/qt-5/qmake-variable-reference.html所述,您应在.pro文件中添加CONFIG += c++11

答案 1 :(得分:1)

只需删除-std = c ++ 11附近的撇号。

# conn1 and conn2 - previously opened connections "to" and "from"
t1 = threading.Thread(target=CopyProxy, args=[conn1, conn2])
t2 = threading.Thread(target=CopyProxy, args=[conn2, conn1])   
t1.start() 
t2.start()

应该是

QMAKE_CXXFLAGS += '-std=c++11'