ฉันมีปัญหาในการรวบรวมโปรแกรม 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 ++ ไหม? หรือคอมไพเลอร์ทั้งสามตัวนี้เสียจริง ๆ จนพวกเขาไม่สามารถคอมไพล์โปรแกรมง่ายๆนี้ได้หรือไม่?