Если вы можете переписать скрипт, который устанавливает среду на C ++, вы можете создать среду самостоятельно и установить ее, используя
пусто QProcess::setProcessEnvironment ( const QProcessEnvironment & environment )
метод, как в примере, приведенном в документации метода:
QProcess process;
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
env.insert("TMPDIR", "C:\\MyApp\\temp"); // Add an environment variable
env.insert("PATH", env.value("Path") + ";C:\\Bin");
process.setProcessEnvironment(env);
process.start("myapp");
UPDATE
Если вы не можете использовать описанный выше метод, вы можете попробовать использовать cmd.exe следующим образом:
#include <QtCore/QCoreApplication>
#include <QtCore/QProcess>
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
QProcess* proc = new QProcess();
proc->start("cmd.exe /c \"call env.bat && script.bat\"");
return app.exec();
}
Наличие env.bat с этим содержанием
set abc=test
и script.bat с этим содержимым
echo %abc% > a.txt
при выполнении вышеизложенного создает файл .txt с этим содержимым
test