我在编译我编写的C ++程序时遇到了一些困难。
该程序非常简单,据我所知,它符合C ++标准中列出的所有规则。我已经阅读了两次完整的ISO / IEC 14882:2003,以确保。
该程序如下:
这是尝试使用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
沮丧的是,我尝试了g ++ 4.5.2,但同样没有帮助:
c:\dev>g++ helloworld.png
helloworld.png: file not recognized: File format not recognized
collect2: ld returned 1 exit status
我认为Clang(3.0版主干127530版)必须能够工作,因为它的标准一致性倍受赞誉。不幸的是,它甚至没有给我提供其漂亮的,突出显示的错误消息之一:
c:\dev>clang++ helloworld.png
helloworld.png: file not recognized: File format not recognized
collect2: ld returned 1 exit status
clang++: error: linker (via gcc) command failed with exit code 1 (use -v to see invocation)
老实说,我真的不知道这些错误消息是什么意思。
许多其他C ++程序都具有带有.cpp扩展名的源文件,因此我想也许我需要重命名文件。我将其名称更改为helloworld.cpp,但这没有帮助。我认为Clang中有一个非常严重的错误,因为当我尝试使用它来编译重命名的程序时,它翻转了,并显示“ 84警告和20错误生成”。让我的电脑发出很多哔哔声!
我在这里做错了什么?我是否错过了C ++标准的某些关键部分?还是所有三个编译器真的都坏了,无法编译这个简单的程序?