我正在使用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: 错误:'_popen'未在此范围内声明 + QLatin1String(" && ") + args).toLocal8Bit().constData(), "r")) {
导致错误的命令是:
g++ -c -o qmakebuiltins.o -std=c++11 -DUNICODE -ffunction-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++ -std=c++11 mytest.cpp -o mytest 无法编译
应该使用:
>g++ -std=gnu++11 mytest.cpp -o mytest
所以问题是如何将传递给g++的选项c++11修改为gnu++11?这个问题需要通过配置文件来解决。
谢谢