Я пишу программу на python которая должна компилировать .cpp файл в .exe и запускать его.
В папке с проектом есть компилятор MinGW, с помощью него я как раз и собираюсь компилировать программу. Когда я запускаю его с помощью команды Popen в python (использовал и библиотеку subprocess, и psutil) всё работает нормально.
proc = psutil.Popen('"./MinGW/compile_code_1.cmd"', shell=True, stdout=subprocess.PIPE)
Но когда я добавляю proc.wait(), что бы дождаться окончания компиляции, MinGW выдаёт ошибку:
c:/users/cergm/desktop/unit tests/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../libmingw32.a(main.o): In function `main':
C:\MinGW\msys\1.0\src\mingwrt/../mingw/main.c:73: undefined reference to `WinMain@16'
collect2: ld returned 1 exit status
Такая же ошибка возникает, когда я использую
subprocess.call(),
proc.communicate() и даже,
когда писал
while psutil.pid_exists(proc.pid).
compile_code_1.cmd@echo off
set PATH=%~dp0bin;%PATH%
title MinGW Portable Command Prompt
cd /d "%~dp0"
g++ ../solutions/code_1/main.cpp -o ../solutions/code_1/main
exit
main.cpp#include <iostream>
#include <cstdio>
using namespace std;
int main(int narg, char*args[])
{
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
int a, b;
cin >> a >> b;
cout << a + b;
}