Как я могу скомпилировать программу во время выполнения приложения QT или VS2010? - PullRequest
2 голосов
/ 17 ноября 2011

В настоящее время я занимаюсь разработкой небольшого оценочного приложения (для курса C ++), которое будет компилировать файлы .cpp студентов и сравнивать результаты с мастером.Я использую QT Creator для разработки пользовательского интерфейса, а также внутреннего компонента (включая некоторую интеграцию 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" не распознаются как команды.Я выполняю вариант этой программы в виде файла .exe из приложения QT, передавая имя файла этой функции, поэтому оно должно быть в форме Release.Что я могу сделать, чтобы использовать компилятор командной строки из этого приложения?

Спасибо!

1 Ответ

0 голосов
/ 20 сентября 2012

У меня нет опыта преподавания, но мое первое предложение - попросить ваших учеников предоставить make-файл. NMake - это система для VC, так что вы можете попробовать это.

Если вы все еще хотите компилировать, используя собственный код, я бы порекомендовал SCons вместо консольного приложения.SCons и Python бесплатны и очень просты в настройке.Ваш пример становится следующим:

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

Вы можете вызывать scons из приложения C ++, если вы выберете, и после вызова, при условии отсутствия ошибок сборки, исполняемый файл будет доступен.

...