Окно вывода сборки не обновляется до закрытия приложения в режиме запуска (Windows)
У меня есть система сборки, которая запускает скрипт сборки, а затем выполняет программу. Проблема в том, что любой вывод, который делает программа, не распечатывается, пока приложение не завершится.
Я попытался запустить программу из пакетного скрипта и со следующим:
{
"cmd": "build.bat Release & cd bin & .\\editor.exe & cd ..",
"working_dir": "${project_path:${folder}}",
"shell": true,
}
Что-нибудь нужно сделать, чтобы избежать такого поведения?
Вот простой код C++, который воспроизводит проблему:
#include <stdio.h>
#include <thread>
int main(int argc, char** argv)
{
using namespace std::chrono_literals;
fprintf(stderr, "Hello, World\n");
std::this_thread::sleep_for(2s);
return 0;
}
РЕДАКТИРОВАТЬ: Как указал OdatNurd, позвонив fflush
в коде C++ делает свою работу. Но я бы предпочел не изменять мой исходный код, чтобы он правильно работал с возвышенным. Для меня инструмент должен адаптироваться к коду, а не наоборот.
РЕДАКТИРОВАТЬ 2: Похоже, что это не происходит в Linux, поэтому я думаю, что это некоторые специфические вещи для Windows. Я обновил название в последствии.