我需要从第一个程序编译源代码。 我需要运行这个:
gcc -o finalOutput sources/main.cpp sources/config.h -lcurl '-DHOST=(char*)"https://google.fr/"'
我使用的是QT5,这是我测试过的:
QProcess *proc;
proc = new QProcess();
proc->start("gcc -o finalOutput sources/main.cpp sources/config.h -lcurl '-DHOST=(char*)"https://google.fr/"'"); // start program
ui->lblReturn->setText("ok");
问题来自gcc命令的语法,这部分:
'-DHOST=(char*)"https://google.fr/"'
我不明白如何正确格式化
答案 0 :(得分:1)
QProcess::start
函数有几个重载。第一个版本
QProcess::start(const QString& command, OpenMode mode=ReadWrite);
有一个奇怪的行为,其参数包含引号字符。引用文档:
命令字符串中的文字引号用三引号表示。
这就是我通常推荐
的原因QProcess::start(const QString& program, const QStringList& arguments, OpenMode mode=ReadWrite);
过载。使用它,命令
gcc -o finalOutput sources/main.cpp sources/config.h -lcurl '-DHOST=(char*)"https://google.fr/"'
可以使用以下代码执行:
QStringList args = QStringList()
<< "-o"
<< "finalOutput"
<< "sources/main.cpp"
<< "sources/config.h"
<< "-lcurl"
<< "-DHOST=(char*)\"https://google.fr/\"";
QProcess *proc = new QProcess();
proc->start("gcc", args);