3

我安装了以下内容:MINGW32_NT-6.1 i686 Msys

我正在使用命令行。编写了“典型的”HelloWorld.cpp 程序。

如果我编译: cpp HelloWorld.cpp -o HelloWorld.exe 编译很好。(18k) 但执行失败:16 位 MS-DOS 子系统。NTVDM CPU 错误

如果我编译:g++ HelloWorld.cpp -o HelloWorld.exe 编译很好。(48k) 执行良好。

我无法确定执行编译的最佳方式以及这些方法之间的区别。有什么建议么?还是好的参考?谢谢。

4

1 回答 1

3

“cpp”是“C PreProcessor”,而不是编译器。所以你只是在 HelloWorld.exe 中得到了一些奇怪的东西

执行“type HelloWorld.exe”,看看它给出了什么。它甚至不应该是一个二进制文件——只是一个长文本文件,所有“#includes”和“#defines”都被替换了。

对于您的问题-第二种方法是“正确的”,因为您实际上调用了编译器/链接器并生成了有效的可执行文件。第一个“方式”是一个有效的命令,但它几乎与编译和链接无关。

于 2012-06-04T18:32:32.220 回答