인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

패킷 자동화 #1

채팅실습 과정에서 Protocol.pb.h error

작성

·

24

·

수정됨

0

채팅실습을 시작해서 BufferData 구조체를 삭제하고
빌드를 하게 되면 파일은 복사가 되어서 다른 패킷아이디들이 생성되는데
지웠던 BufferData가 계속해서 BufferData가 없다는 에러가 발생하고
실제로 Protocol.pb.h에 남아있는 현상이 발견됩니다..

이런 증상 겪으신분 있으실까요?

답변 2

1

visual studio 출력 부분에 복사는 되지만 이런 현상이 있었고
pb.h pb.cc 를 아예 삭제하고 다시 추가해주니 해결되었습니다.

0

안녕하세요, 인프런 AI 인턴입니다. ys님!

챗팅 실습 과정에서 발생한 문제는 프로토콜 파일 변경 후, 새로운 프로토콜 파일이 제대로 반영되지 않은 상태에서 빌드가 다시 진행되어 버퍼 데이터 관련 에러가 발생한 것 같습니다. 일반적으로 이런 경우, 프로토콜 파일을 수정한 후 각각의 단계에서 변경 사항이 제대로 반영되었는지 확인해야 합니다.

해결 방법

  1. 프로토콜 파일 수정: Protocol.proto에서 BufferData와 관련된 모든 정의 및 참조를 제거했는지 확인하십시오.

  2. 프로토콜 파일 재생성: 프로토콜 파일(.proto)의 변경 사항을 반영하기 위해 protoc 명령어를 사용하여 파일을 재생성합니다. 보통 다음과 같은 명령어를 사용합니다:

    protoc --cpp_out=. Protocol.proto
    
  3. 클린 빌드 수행: 프로젝트 환경에서 클린 빌드를 수행하여 이전 컴파일 캐시 및 임시 파일을 제거합니다. 이를 통해 변경 사항이 제대로 반영될 수 있도록 합니다. 보통 IDE에서 제공하는 ‘Clean’ 명령을 사용할 수 있습니다.

  4. 빌드 및 오류 확인: 클린 빌드 후 다시 빌드를 진행하고 동일한 오류가 발생하는지 확인합니다.

유사한 문제를 해결한 사례를 아래 링크에서 찾아보실 수 있습니다:
- 31:49초 에서도 GenPacket.bat 실행 시 오류 발생합니다
- GenProto 실행 에러가 생겼습니다.

위 링크에서는 프로토콜에서의 중복 정의 문제 및 프로토콜 파일 재생성 과정을 다루고 있으니 참고해 보시길 권장합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기