У меня возникли трудности с компиляцией написанной мной программы на 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 ++? Или все три компилятора действительно настолько сломаны, что не могут скомпилировать эту простую программу?