2012-06-04 51 views
3

我安裝了下列: MINGW32_NT-6.1的i686 MSYSMINGW CPP G ++適當命令來編譯

我正在與命令行工作。 寫了「典型的」HelloWorld.cpp程序。

如果我編譯:cpp HelloWorld.cpp -o HelloWorld.exe編譯好。 (18k) 但執行失敗:16位MS-DOS子系統。 NTVDM CPU錯誤

如果我編譯:g++ HelloWorld.cpp -o HelloWorld.exe編譯好。 (48k) 執行情況良好。

我無法確定執行編譯的最佳方式以及方法之間的區別。有什麼建議麼?還是很好的參考? 謝謝。

+0

當其中一個選項編譯並運行,另一個選項不運行時,您無法確定執行編譯的最佳方式嗎?鑑於選擇... –

回答

3

「cpp」是「C預處理器」,而不是編譯器。所以你只是在HelloWorld.exe中發現一些奇怪的東西

執行「類型HelloWorld.exe」並查看它給出了什麼。它甚至不應該是一個二進制文件 - 只是一個包含所有「#includes」和「#defines」的長文本文件。

對於你的問題 - 第二種方法是「正確的」,因爲你實際上調用了編譯器/鏈接器併產生了一個有效的可執行文件。第一個「方法」是一個有效的命令,但它幾乎與編譯和鏈接無關。

+0

非常感謝您的協助!您的簡單而翔實的消息已解決我的所有問題,並且應用程序按預期運行! –

+0

很高興提供幫助。當你開始使用一些新的工具時總會遇到這樣的麻煩。順便說一句,如果答案是好的,你可以用投票下面的按鈕來接受它。 –