2012-03-25 17 views
5

プログラムでC#をコンパイルします。私は努力していますが、まだ解決策が見つかりませんでした。ここに私のコードです。mingw32-gccコンパイラを使用して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 \コードブロック\ MinGWの\ビン 任意のヘルプが理解されるであろう。前もって感謝します。

+0

を試してみてください:あなたは、結果のCコードをどうするつもりですか? –

+1

コードに問題がありますか? – usr

+1

私は自分の学期の最終プロジェクトのウェブベースのオンラインジャッジを構築しています。通常、コンテストがコードを提出できるオプションが必要です。ですから、提出されたコードをコンパイルし、競技者にフィードバックを提供するよりも.cファイルに保存する必要があります。 **私はjavaのデスクトップアプリケーションでCコードをコンパイルしていますが、C#の問題に直面しています。ありがとう –

答えて

2

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); 

よろしく

+1

引数を指定してmingw32-gcc.exeを直接呼び出すだけで問題が解決しませんでした。返信いただきありがとうございます。よろしくお願いします。 –

+0

@ForhadHussain:「自分の問題を解決しなかった」と具体的になることはできますか?エラー、ロック、何?あなたは "cmd.exe"と呼ぶべきではないという点で、Grifosは正解です。 – Abel

+0

私の応答を編集して例を与えました – grifos

8

Process process = Process.Start(
     @"C:\Program Files\CodeBlocks\MinGW\bin\mingw32-gcc.exe", "-o a Test.c"); 
+0

あなたは私の時間を解決しました。どうもありがとう。 –

+0

@YoryeNathan私は本当に 'mingw32'を楽しむものとは言いません。 –

+0

@ ta.speot.is問題ではない、彼は信用を得るべきであり、その答えがOPを助けたならば、ありがとう。 – SimpleVar

関連する問題