2012-02-07 2 views
2

C++에서 YAML을 사용해보기 위해 here이라는 예제를 실행 중입니다. 코드를 그대로 새로운 프로젝트 폴더의 test.cpp에 복사했습니다. YAML을 정적 라이브러리로 컴파일하고이를 프로젝트에 연결했습니다. 우분투 11.10을 실행 중입니다. 나는 컴파일하려면 다음 명령을 사용yaml-cpp의 YAML 괴물을 사용한 "잘못된 블록 항목"

g++ -Wall -I. -g test.cpp -lyaml-cpp -L. 

나는 다음과 같은 오류 문을 얻을 :

terminate called after throwing an instance of 'YAML::ParserException' 
     what(): yaml-cpp: error at line 4, column 2: illegal block entry 
    Aborted 

이 예외의 의미는 무엇입니까? 그리고 무엇이 잘못 될 수 있습니까? 각 예외가 의미하는 바를 명확하게 문서화 할 수 없기 때문에이 정보에 대한 링크조차 도움이 될 것입니다. 나는 아마 YAML을 처음 접했을 때 라이브러리와 리눅스를 사용하여 제 자신의 깊이에서 벗어 났을 것입니다. 귀하의 도움에 미리 감사드립니다.

편집 : 오류가 "parser.GetNextDocument (doc)"전에 발생합니다. 또한, 나는 단일 스칼라를 저장하는 웹 사이트에서 더 간단한 예제를 실행했다. 입력 파일 또는 코드에 대한 예외입니까?

+0

당신은 예제 코드에서 이런 곳을 찾기 위해 디버거를 사용할 수 ? –

+0

David 님, 귀하의 질문에 답변하기 위해 기본 게시물을 편집했습니다. – Joe

+0

어떤 예를 사용하고 있습니까? (해당 페이지에 몇 가지 예가 나와 있습니다.) –

답변

1

오류는 입력 파일 (monsters.yaml)에 문제가 있음을 나타냅니다. 정확히으로 복사했는지 확인하십시오. 그것은 4 행 2 열에 오류가 있다고 주장하기 때문에 먼저 그 위치를 볼 수 있습니다 (그러나 yaml-cpp는 오류의 위치가 그리 좋지 않으므로 보지 못합니다).

상황이 있는지에 대해 :

  • 공간이 아닌 탭을
  • 들여 쓰기 공간의 적절한 수
+0

고마워요! 그것은 그것을 고쳤다. – Joe

관련 문제