minGW CPP G++合适的编译命令

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),执行也是成功的。
我无法确定最佳的编译方式以及这些方法之间的区别。有什么建议或好的参考资料吗?谢谢。

当其中一种选项可以编译并运行,而另一种选项不能时,你无法确定执行编译的最佳方式?鉴于这些选择... - David Rodríguez - dribeas
1个回答

3

“cpp” 是 “C 预处理器”,而不是编译器。因此,你在 HelloWorld.exe 中只会得到一些奇怪的东西。

执行“type HelloWorld.exe”指令并查看其结果。它甚至不应该是一个二进制文件,而只是一个将所有“#include”和“#define”替换后的长文本文件。

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


非常感谢您的帮助!您简单而富有信息量的消息解决了我所有的问题,应用程序正在按预期运行! - Jeff Lance
很高兴能够帮助。当您开始使用一些新工具时,总会遇到这样的问题。顺便说一句,如果答案不错,您可以使用投票下方的按钮“接受”它。 - Viktor Latypov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接