Qt 添加-std=gnu++;11编译器标志到QMake

Qt 添加-std=gnu++;11编译器标志到QMake,qt,g++,mingw,qt5,qmake,Qt,G++,Mingw,Qt5,Qmake,我正在使用mingw32和g++.4.9.3在windows上编译qt5.7。 执行configure.bat时,出现以下错误: C:\qt-everywhere-opensource-src-5.7.0\configure.bat -prefix C:\Qt-5.7 -skip qttools -skip qtwebchannel -skip qtwebengine -skip qtcharts -skip qtdatavis3d -platform win32-g++ C:\qt-ever

我正在使用mingw32和g++.4.9.3在windows上编译qt5.7。 执行configure.bat时,出现以下错误:

C:\qt-everywhere-opensource-src-5.7.0\configure.bat -prefix C:\Qt-5.7 -skip qttools -skip qtwebchannel -skip qtwebengine -skip qtcharts -skip qtdatavis3d -platform win32-g++
C:\qt-everywhere-opensource-src-5.7.0\qtbase/qmake/library/qmakebuiltins.cpp:在成员函数“QByteArray QMakeEvaluator::getCommandOutput(const QString&)const”中: C:\qt-everywhere-opensource-src-5.7.0\qtbase/qmake/library/qmakebuiltins.cpp:419:94:错误:“\u popen”未在此范围内声明 +QLatin1String(“&&&”+args.toLocal8Bit().constData(),“r”)){

导致此错误的命令是:

g++-c-o qmakebuiltins.o-std=c++11-DUNICODE-fffunction sections-g-IC:\qt-everywhere-opensource-src-5.7.0\qtbase/qmake+很多东西

此外,以下代码:

    #include <stdio.h>

int main( int argc, char ** argv )
{
     FILE * f = popen( argv[ 1 ], "r" );
     return 0;
}
因此,问题是如何将配置文件传递给g++的选项c++11修改为gnu++11?
谢谢

在Qt中添加编译器选项非常简单。只需在qmake文件的某些地方添加以下行即可

# C++ Compiler flags: Gnu C++ Extensions
QMAKE_CXXFLAGS += -std=gnu++11
同样,如果要传递
C
编译器选项,请使用

# C Compiler flags for qmake 
QMAKE_CFLAGS += -std=gnu99

<> >代码< > POPONE/COD>不与 C++ 11 >,它是作为GNU C++扩展实现的,不是标准C++。同样,VisualStudio也从C++标准库中定义了 PopeN<代码>。++11

我在qt的下载库中下载了另一个版本的mingw,找到了一个解决办法:

类似的问题:
# C Compiler flags for qmake 
QMAKE_CFLAGS += -std=gnu99