我正在尝试制作一个小IDE来编译c文件。我在Ubuntu 14.04和QtCreator 5.4.0下运行。我写了这段代码。
void MainWindow::on_pushButton_clicked()
{
QFile file("hello.c");
file.open(QIODevice::WriteOnly);
QTextStream out(&file);
out << ui->plainTextEdit->toPlainText();
QProcess::execute("gcc hello.c -o hello");
}
在运行gcc命令之前一切正常。当我点击按钮时出现此错误:
In function `_start':
(.text+0x20): undefined reference to `main'
collect2: error: ld returned 1 exit status
我的C代码在这里:
#include <stdio.h>
int main () {
printf("Hello World..");
return 0;
}
答案 0 :(得分:0)
您还没有刷新QTextStream缓冲区,因此当您在其上调用gcc时,hello.c为空。使用QTextStream&#39; s flush()
来刷新缓冲区,它还在底层设备上调用flush(这里是QFile)。