Вы можете запустить компилятор командной строки, cl
, который довольно легко настроить, и перехватить его сообщение об ошибке.
Нет make-файла и почти никакой информации из решения / проекта. Просто включите путь и исходный файл. В самом простом вам просто нужна программа, которая "переворачивает" код завершения другой программы:
#include <sstream>
#include <stdlib.h>
int main(int argc, char *argv[])
{
std::ostringstream command;
for (int n = 1; n < argc; n++)
command << argv[n] << " ";
return (system(command.str().c_str()) == EXIT_SUCCESS)
? EXIT_FAILURE : EXIT_SUCCESS;
}
Он просто восстанавливает переданные ему аргументы (опуская свое собственное имя) и выходит из полученной командной строки, а затем возвращает успех, если он терпит неудачу, и сбой, если он успешен. Этого достаточно, чтобы обмануть Visual Studio или make
.
Технически восстановленная командная строка должна заключать аргументы в кавычки, но это будет необходимо, только если вы достаточно безумны, чтобы поместить пробелы в каталог сборки или имена исходных файлов!