2017-01-16 1 views
0

내가 만든 프로그램을 디버깅 중입니다. 프로그램은 오류없이 컴파일되고 실행됩니다.Eclipse 디버거 C++ '사용할 수있는 소스 없음'std :: ostream :: operator <<() " '; 'std :: endl'issue

디버거 gcc4.9.3 (rtools_34) 내가 메시지를 얻을 사용 : 이상 어떤 스테핑 때

' "표준 : : ostream에 :: 연산자 < <()"에 사용할 수있는 소스를' std :: cout 포함하는 줄 < < "텍스트"< < std :: endl; 이로 인해 디버깅이 중단됩니다. 그러나 내가 불량 코드를 지나서 중단 점을 설정하면 문제없이 건너 뛸 수 있습니다.

코드에는 iostream, ostream 및 string이 포함됩니다.

이 코드는이 문제없이 다른 컴파일러에서도 디버깅되었습니다. 더 새로운 컴파일러를위한 이클립스에 대한 새로운 가져 오기이므로 잘못된 설정을했다고 가정합니다.

대신 '\ n'을 사용하면 std :: endl에서 문제가있는 것 같습니다.

오류 메시지의 해석에 대한 힌트 또는 문제 해결 방법에 대해 크게 감사드립니다.

+0

"텍스트"를'std :: string'으로 대체하면 어떻게 될까요? 컴파일러가 리터럴을'<< '- 가능 유형으로 변환 할 수없는 것 같습니다. 리터럴을'std :: string'의 명시적인 인스턴스로 대체하면 또 다른 단서를 얻을 수 있습니다. – Ben

+0

다음을 포함 하시겠습니까? std :: string test = "Text"; std :: cout << 테스트 << std :: endl; 그렇다면 오류는 같습니다. – haffamoto

+0

동일한 문제가 발생했습니다. 그걸 고칠 수 있었 니? 참조 http://stackoverflow.com/questions/43020983/eclipse-debugger-c-no-source-available-for-stdostreamoperator – drorbr

답변

0

#include <string>으로 기억해 둡니까?

죄송합니다. 분명하고 확인 된 경우 귀하의 질문에서 분명히 드러났습니다.

+0

Fred. 예. 코드에 #include가 포함되어 있습니다. #include haffamoto

+0

확인하려면 (수정하지는 않지만 다시 좁힐 수도 있습니다) std :: cout << "Text \ n" - endl과 같이 \ n을 명시 적으로 사용하는 것이 좋습니다. iostream에 포함되어야하지만,이 경우에 대비하여 (C++ 11 이전에 명시 적으로 요구되지는 않음) –

+0

내가 생각할 수있는 마지막 사항은 컴파일러의 디버그 플래그가 설정되지 않았다는 것입니다. 내가 제안한 세 가지가 모두 여기에 오기 전에 이미 확인했을 것으로 기대되는 간단한 것들이지만, 그럴 경우 알림으로 아무런 해가 없기를 바랍니다. 바라건대 다른 누군가가 따라 와서이 문제가 해결된다고 가정하고 바라 건데! –

관련 문제