我有一个生成.cpp文件的C#应用程序。我尝试使用像这样的gcc编译器以编程方式编译该文件:
private void button2_Click(object sender, EventArgs e)
{
Thread.Sleep(2000);
Process process = Process.Start(@"C:\Program Files (x86)\CodeBlocks\MinGW\bin\mingw32-gcc.exe", "-o a x.cpp");
Thread.Sleep(2000);
}
当我按下按钮2时,2秒后,出现一个控制台(gcc编译器),但它立即消失,因此我看不到它的内容。
我想看看x.cpp文件中包含的代码是否已成功编译,如果没有,则表示gcc编译器生成的错误是什么。
谢天谢地。
答案 0 :(得分:0)
如果您只需要成功/失败 - 请检查[退出代码] http://msdn.microsoft.com/en-us/library/system.diagnostics.process.exitcode%28v=vs.110%29.aspx)。零通常是成功,非零是失败。
Redirection of output streams from console app通常用于收集输出。
可能更容易调试/验证方法是转储编译器以记录到文件而不是控制台。从GCC writes logs to standard output起,您可以创建CMD / BAT文件以将日志重定向到文件并运行它而不是GCC
...gcc.exe %1 1>%2 2>%3
并使用Process.Start
调用它。请注意,您需要处理清理日志文件。另一方面,您知道日志文件中的内容,如果您错过/错误地解释了C#中的控制台输出,则不必担心。