【发布时间】:2017-01-17 12:33:11
【问题描述】:
我正在尝试使用 g++ 编译器生成一个 .exe 文件。我尝试了多种方法都没有成功。
1) QString program = "C:/Strawberry/c/bin/g++";
QStringList arguments;
arguments << "g++ -o dialog C:/Documents/ED30/dialog.cpp";
QProcess process;
process.start(program, arguments);
process.waitForFinished(-1);
2) QProcess::execute("g++ -o dialog2 C:/Documents/ED30/dialog.cpp");
3) QProcess::execute("g++ C:/Documents/ED30/dialog.cpp -o dialog2");
每次我都有相同的错误信息:
“在 C:/Documents/ED30/dialog.cpp:1:0 中包含的文件中: C:/Documents/ED30/dialog.h:4:19:致命错误:QDialog:没有这样的文件或目录 编译终止。”
或者有时什么也没发生。
我在 Windows 8.1 上使用带有 MinGW 的 Qt 5.7
编辑: 所以在和成员讨论了这个问题之后,我做了一些进展。 迄今为止最好的代码是:
system("g++ -o dialog2 -I C:/Qt/5.8/mingw53_32/include -I C:/Qt/5.8/mingw53_32/include/QtGui -I C:/Qt/5.8/mingw53_32/include/QtCore -I C:/Qt/5.8/mingw53_32/include/QtWidgets -L C:/Qt/5.8/mingw53_32/lib C:/Documents/ED30/dialog.cpp");
但这表明 MinGW 不是 c++ 11 编译器,它建议我在命令行中编写“-std=c++11 或 -std=gnu++11”以更新编译器.在编译器中输入后,出现如下错误:“Unknow command”。 我尝试使用 Qt 5.7 和 5.8 没有成功。 有解决方案吗?
【问题讨论】:
-
你在交叉编译C和C++吗?如果没有,请不要发送垃圾标签。
-
error: QDialog: No such file表示没有这样的文件QDialog -
编译器找不到 Qt 头文件。尝试先在命令行上完成这项工作。
-
@StoryTeller:即使他的项目中有C和C++源文件,这也是关于C++的。同意不发送垃圾邮件标签。删除了不相关的语言。
-
@filmor 我试过 :QProcess::execute("g++ -o dialog2 C:/Documents/ED30/dialog.cpp C:/Documents/ED30/dialog.h");它为我创建了一个 dialog.gch 文件。