1

「Compilation As A Service」を提供するクラウドサービスを構築しています。Azure に Ubuntu 12.04 VM があります。VMにもGCCをインストールできました。現在、Visual Studio でフロントエンドを構築しています。その中に、コードを保持するテキスト ボックスがあります。しかし、GCC を使用してコードを処理する方法がわかりませんか?

現在、このようなものを使用しています。

        string log = @"C:\log.c";
        using (FileStream fs = new FileStream(log, FileMode.Create))
        {
            using (StreamWriter sw = new StreamWriter(fs))
            {
                sw.Write(TextBox1.Text);
                sw.Close();
            }
        }
        string szMgwGCCPath = "/usr/bin/gcc"; // Example of location
        string szArguments = " -c log.c -o log.exe"; // Example of arguments
        ProcessStartInfo gccStartInfo = new ProcessStartInfo(szMgwGCCPath, szArguments);
        gccStartInfo.WindowStyle = ProcessWindowStyle.Hidden;
        Process.Start(gccStartInfo);

どの部分が正しいのかわかりません。コンパイラがクラウドに保存されているため、テストできないためです。

文字列 szMgwGCCPath = "/usr/bin/gcc"; // 場所の例

場所をどのように指定しますか? BLOB ストレージの URL を使用しますか? どうやってするか?

その後、ファイルをどのように処理しますか?

4

1 に答える 1

1

上記のシナリオは明確ではありません。

先に進む前に、上記のコードは C# で記述されています。.NET Framework Design Guidelinesに従って、*ハンガリー語表記を使用しないでください* .NET では不要であり、ほとんど意味がありません (たとえば、sz == 'string of chars end in zero' は、CLR での文字列の表現方法ではありません!) .

コードとシナリオに戻ります。

「フロントエンド」コードはどこで実行されていますか? WinForms/WPF クライアント アプリ? ASP.NET Web サイトでは?

クライアントが ASP.NET で実行されている場合、Mono を使用して Linux VM で ASP.NET Web サイトをホストしていますか (そうである場合は、質問のタグを更新して Mono と Linux を含めてください)。Linux で Mono を実行している場合、なぜ「.exe」を生成しようとしているのですか? 「.exe」ファイルは Windows 実行可能ファイルです。通常、Linux 実行可能ファイルには「.exe」拡張子はありません。また、クライアントが Linux で実行されている場合、なぜ MinGW を使用しているのですか? これは、Windows で GNU コードを実行するために使用されます。

率直に言って、達成しようとしていることを再考するか、シナリオと質問をより明確に述べ直す必要があると思います。

于 2013-03-11T06:49:14.897 に答える