如何从C#应用程序中使用GCC检索C编译代码的错误

时间:2014-04-21 16:57:36

标签: c# gcc compilation

我有一个生成.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编译器生成的错误是什么。

谢天谢地。

1 个答案:

答案 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#中的控制台输出,则不必担心。