我想以编程方式从C#编译C代码。我正在尝试,但尚未找到任何解决方案。这是我的代码。

try {
    var info = new ProcessStartInfo {
        FileName = "cmd.exe",
        Arguments = "mingw32-gcc -o a Test.c"
    };
    var process = new Process { StartInfo = info };
    bool start = process.Start();

    process.WaitForExit();
    if (start) {
        Console.WriteLine("done");
    }
} catch (Exception) {
    Console.WriteLine("Not done");
}

我在Windows 7中使用VS2010,并且已安装mingw32-gcc,并且mingw32-gcc的环境变量为 C:\Program Files\CodeBlocks\MinGW\bin
任何帮助将不胜感激。提前致谢。

最佳答案

不需要调用cmd.exe程序。您可以使用参数直接调用mingw32-gcc.exe程序。

编辑:

string szMgwGCCPath = "C:\\mingw32\\bin\\mingw32-gcc.exe"; // Example of location
string szArguments = " -c main.c -o main.exe"; // Example of arguments
ProcessStartInfo gccStartInfo = new ProcessStartInfo(szMgwGCCPath , szArguments );
gccStartInfo.WindowStyle = ProcessWindowStyle.Hidden;
Process.Start(gccStartInfo );

问候

10-07 21:33