У мене виникають певні труднощі при складанні написаної нами програми 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 ++? Або всі три компілятори насправді настільки зламані, що не можуть скласти цю просту програму?