我有一个运行构建脚本然后执行程序的构建系统。问题是在应用程序结束之前不会打印程序所做的任何输出。
我尝试从批处理脚本运行程序并使用以下内容:
{
"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++ 代码就可以了。但我宁愿不必修改我的源代码以使其与 sublime 一起正常工作。对我来说,该工具应该适应代码,而不是相反。
EDIT2:这似乎并没有在 Linux 上发生,所以我想这是一些 Windows 特定的东西。结果我更新了标题。