使用仅带参数的 QProcess
Using QProcess with only arguments
我正在尝试使用 QProcess 编译另一个 .cpp 代码。我在我的程序中使用了这段代码。
QStringList arguments;
arguments << "g++";
arguments << "-o";
arguments << QDir::toNativeSeparators(exePath); //path and exe path to future .exe
arguments << QDir::toNativeSeparators(mainPath); // path to main.cpp
QProcess process;
process.open();
process.setArguments(arguments);
process.start();
process.waitForFinished();
process.close();
它工作正常,它编译另一个 .cpp 文件并为该测试项目创建 .exe。
但我也收到警告:
QProcess::start: 程序未设置
但我不想设置程序...一开始我使用 std::system() 为此,但我想使用 Qt 库。
你知道如何超越警告吗?
再说一次:这是一个从完全不同的程序编译完全不同的程序main.cpp。
I dont want to set program
据我所知,你想使用 g++
而那个程序就是
所以
QStringList arguments;
arguments << "-o";
arguments << QDir::toNativeSeparators(exePath); //path and exe path to future .exe
arguments << QDir::toNativeSeparators(mainPath); // path to main.cpp
QProcess process;
process.start("g++", arguments);
process.waitForFinished();
或
QStringList arguments;
arguments << "-o";
arguments << QDir::toNativeSeparators(exePath); //path and exe path to future .exe
arguments << QDir::toNativeSeparators(mainPath); // path to main.cpp
QProcess process;
process.setProgram("g++");
process.setArguments(arguments);
process.start();
process.waitForFinished();
Do you know how to surpass warning ?
使用setProgram()
函数:
QProcess p;
//set the program
p.setProgram("g++");
//create args
QStringList arguments = {
"-o",
QDir::toNativeSeparators(exePath),
QDir::toNativeSeparators(mainPath)
};
//set the args
p.setArguments(arguments);
另外,不要同时使用 open()
和 start()
。来自 docs:
This method is an alias for start(), and exists only to fully implement the interface defined by QIODevice.
所以 process.start()
就够了。
我正在尝试使用 QProcess 编译另一个 .cpp 代码。我在我的程序中使用了这段代码。
QStringList arguments;
arguments << "g++";
arguments << "-o";
arguments << QDir::toNativeSeparators(exePath); //path and exe path to future .exe
arguments << QDir::toNativeSeparators(mainPath); // path to main.cpp
QProcess process;
process.open();
process.setArguments(arguments);
process.start();
process.waitForFinished();
process.close();
它工作正常,它编译另一个 .cpp 文件并为该测试项目创建 .exe。 但我也收到警告:
QProcess::start: 程序未设置
但我不想设置程序...一开始我使用 std::system() 为此,但我想使用 Qt 库。
你知道如何超越警告吗?
再说一次:这是一个从完全不同的程序编译完全不同的程序main.cpp。
I dont want to set program
据我所知,你想使用 g++
而那个程序就是
所以
QStringList arguments;
arguments << "-o";
arguments << QDir::toNativeSeparators(exePath); //path and exe path to future .exe
arguments << QDir::toNativeSeparators(mainPath); // path to main.cpp
QProcess process;
process.start("g++", arguments);
process.waitForFinished();
或
QStringList arguments;
arguments << "-o";
arguments << QDir::toNativeSeparators(exePath); //path and exe path to future .exe
arguments << QDir::toNativeSeparators(mainPath); // path to main.cpp
QProcess process;
process.setProgram("g++");
process.setArguments(arguments);
process.start();
process.waitForFinished();
Do you know how to surpass warning ?
使用setProgram()
函数:
QProcess p;
//set the program
p.setProgram("g++");
//create args
QStringList arguments = {
"-o",
QDir::toNativeSeparators(exePath),
QDir::toNativeSeparators(mainPath)
};
//set the args
p.setArguments(arguments);
另外,不要同时使用 open()
和 start()
。来自 docs:
This method is an alias for start(), and exists only to fully implement the interface defined by QIODevice.
所以 process.start()
就够了。