2012-06-04 52 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

很高兴提供帮助。当你开始使用一些新的工具时总会遇到这样的麻烦。顺便说一句,如果答案是好的,你可以用投票下面的按钮来接受它。 –