私が書いたC ++プログラムをコンパイルするのが難しいです。
このプログラムは非常にシンプルであり、私の知る限りでは、C ++標準で規定されているすべてのルールに準拠しています。確かに、ISO / IEC 14882:2003の全体を2回読みました。
プログラムは次のとおりです。
このプログラムを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)は、標準への準拠が非常に高い評価を得ているため、機能するはずです。残念ながら、それは私にそのかなり強調されたエラーメッセージの1つも与えませんでした:
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 ++標準の重要な部分を見逃しましたか?または、3つのコンパイラすべてが本当に壊れているため、この単純なプログラムをコンパイルできないのでしょうか。