1、编一个C文件用到的命令是gcc xxx.c -o xxx
2、运行编译好的程序xxx.exe
3、首先获取路径,判断路径是否为空
if(path.isEmpty()) { return; }
4、构建编译命令
QString demo=path; demo.replace(".c",""); QString cmd=QString("gcc %1 -o %2").arg(path).arg(demo); cout << cmd; //上面获取的数据是Qstring,需要转换成char* std::string str=code->fromUnicode(cmd).data(); const char *cmdc=str.c_str(); cout << cmdc;
运行结果:
gcc C:/Users/aiyou/Desktop/456.c -o C:/Users/aiyou/Desktop/456
5、执行编译命令,如果返回结果不为0说明执行成功
int ret=system(cmdc); if(ret!=0) { return; }
6、构建运行编译好的程序的命令,cmd /k,可以让dos窗口停留
QString target=QString("cmd /k %1").arg(demo); str=code->fromUnicode(target).data(); const char *targetc=str.c_str(); system(targetc);