如何在执行QT或VS2010应用程序期间编译程序?

时间:2011-11-17 01:51:09

标签: c++ visual-studio qt-creator

我目前正在开发一个小型评分应用程序(用于C ++课程),它将编译学生的.cpp文件并将输出与主服务器进行比较。我正在使用QT Creator开发UI以及后端组件(包括一些SQLite集成),我一直在努力寻找一种自动和离散地编译文件的方法。

我最初在VS2010中开发了一个使用VS命令行编译器的小应用程序 - 它可以工作,但只能在调试模式下(当程序从cmd.exe中执行时)。当我转移到Release时,无法识别编译命令(“cl”)。这是一个小代码段:

int main()
{
    system("vcvarsall.bat"); // To set up VS Command Prompt environment
    _putenv("INCLUDE=<my include paths>"); // Include paths for compilation
    _putenv("LIB=<my lib paths>"); // Include paths for linking
    system("cl /EHsc \"Student1.cpp"); // Compilation code
    return 0;
}

在Release中执行时,“cl”和“cl.exe”都不会被识别为命令。我正在从QT应用程序中执行此程序的变体作为.exe文件,将文件名传递给此函数,因此它需要处于Release形式。如何在此应用程序中使用命令行编译器?

谢谢!

1 个答案:

答案 0 :(得分:0)

我没有教学背景,但我的第一个建议是让你的学生提供一个makefile。 NMake是VC的系统,所以你可以试试。

如果您仍想使用自己的代码进行编译,我建议使用SCons而不是控制台应用程序。 SCons和Python是免费的,非常容易设置。你的例子变成了:

Program(target='Student1App', source=['Student1.cpp'])

如果您选择,您可以在C ++应用程序中调用scons,并且在调用之后,假设没有构建错误,可执行文件将可用。