내가 작성한 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로 변경 했지만 도움이되지 않았습니다. 이름을 바꾼 프로그램을 컴파일하기 위해이 프로그램을 사용하려고 할 때 "84 경고와 20 오류가 발생했습니다."라고 Clang에 매우 심각한 버그가 있다고 생각합니다. 내 컴퓨터에서 신호음이 많이 울 렸습니다!
내가 여기서 뭘 잘못 했니? C ++ 표준의 중요한 부분을 놓쳤습니까? 아니면이 컴파일러를 컴파일 할 수 없을 정도로 세 개의 컴파일러가 모두 너무 깨졌습니까?