2014-10-05 4 views
0

최근 C++ 어플리케이션 개발을 위해 Eclipse CDT를 사용하기 시작했습니다. Eclpse Kepler CDT 번들을 다운로드했는데 제대로 열었습니다. 그러나 프로젝트를 빌드 한 후에도 간단한 hello world 응용 프로그램을 만들 때 "Binary Not Found"오류가 발생했습니다.Hello World 프로젝트가 컴파일되지 않습니다.

아픈이 툴체인은 GCC 및 Linux GCC를 건너와

19:54:11 **** Incremental Build of configuration Debug for project HelloWorld **** 
make all 
Building file: ../src/HelloWorld.cpp 
Invoking: GCC C++ Compiler 

g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/HelloWorld.d"-MT"src/HelloWorld.d" -o "src/HelloWorld.o" "../src/HelloWorld.cpp" 

cc1plus: error: to generate dependencies you must specify either -M or -MM 
make: *** [src/HelloWorld.o] Error 1 

19:54:11 Build Finished (took 106ms) 

내가 프로그램을 실행 시도 무엇을 내 콘솔 화면을 보여줍니다.

누군가 나에게 무슨 일이 생겼는지 말해 줄 수 있습니까?

+0

어떤 컴파일러 버전을 사용하고 있습니까? 그리고 당신은 질문에 당신의 메이크 파일의 내용을 추가 할 수 있습니까? 주어진대로 파일을 컴파일하라는 명령은 * MinGW w64 4.9.1 * 및 * g ++ 4.7.3 *과 잘 작동하는 것 같습니다. sidenote로'-MF'와'-MT' 태그 사이에 공간이없는 것 같지만 오류의 이유는 아닙니다. –

+0

제 컴파일러 버전은 4.5.1입니다. make 파일은 기본적으로 eclipse에 의해 생성 된 표준 파일입니다. 이클립스에 -M 또는 -MM 옵션을 추가하는 방법을 알려주시겠습니까? 감사합니다. –

+0

알고있는 한, 그렇게해서는 안됩니다. '-MMD'는 완벽해야합니다. 내가 가학적이고 자신의 Makefile을 만들기를 선호하기 때문에 나는 꽤 오랫동안 Eclipse를 사용하지 않았다. 그러나 명령 행 옵션을 추가하려면 * Project -> Properties -> C/C++ Build -> Settings -> Tool Settings -> Compiler -> Miscellaneous *로 가서'-M' 또는'-MM'을 추가하면됩니다. to * 다른 플래그 *. [이 스크린 샷] (https://dl.dropboxusercontent.com/u/15706998/SO/26203032/settings.png)을 참조하십시오. –

답변

0

여러 컴파일러로 테스트 한 결과, OP에 주어진 명령이 제대로 작동하는 것으로 보입니다. 이것은 실제 세계가 이 아닌이어야하는 것과 다른 경우입니다.

해결 방법은 컴파일러에서 수행 할 작업으로, -M 또는 -MM 플래그를 추가하는 것입니다. > 속성 - -> C/C++ 빌드 -> 설정 -> 도구 설정 -> 컴파일러 -

프로젝트에 머리를 그렇게하려면> 기타다른 플래그-M 또는 -MM를 추가합니다.

보조 노트로

Screenshot of settings in Eclipse.

에서, -MF 플래그와 -MT 플래그 사이에 누락 된 공간이 있지만,이 문제의 원인으로 나타나지 않습니다

아래 그림이 보여 .