Функция 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);