无法编译通过的Hello World

在stackoverflow上的一个问题如下:

Why is this program erroneously rejected by three C++ compilers?

I am having some difficulty compiling a C++ program that I’ve written.

This program is very simple and, to the best of my knowledge, conforms to all the rules set forth in the C++ Standard. I’ve read over the entirety of ISO/IEC 14882:2003 twice to be sure.

The program is as follows:

enter image description here

Here is the output I received when trying to compile this program with Visual C++ 2010:

c:\dev>cl /nologo helloworld.png
cl :Command line warning D9024 : unrecognized source file type 'helloworld.png',object file assumed
helloworld.png : fatal error LNK1107: invalid or corrupt file: cannot read at 0x5172

Dismayed, I tried g++ 4.5.2, but it was equally unhelpful:

c:\dev>g++ helloworld.png
helloworld.png: file not recognized:File format not recognized
collect2: ld returned 1exit status

I figured that Clang (version 3.0 trunk 127530) must work, since it is so highly praised for its standards conformance. Unfortunately, it didn’t even give me one of its pretty, highlighted error messages:

c:\dev>clang++ helloworld.png
helloworld.png: file not recognized:File format not recognized
collect2: ld returned 1exit status
clang++: error: linker (via gcc) command failed withexit code 1(use-v to see invocation)

To be honest, I don’t really know what any of these error message mean.

其中的一个回答:

另外一个回答:

Try this way:

enter image description here

share

来源:http://stackoverflow.com/questions/5508110/why-is-this-program-erroneously-rejected-by-three-c-compilers

发表评论