작성
·
173
·
수정됨
0
포트폴리오 작업하고 있는데,
클라이언트를 PacketHandler까지 작업 완료된 서버랑 연동해보려고 합니다~
ClientServiceRef service = MakeShared<ClientService>(
NetAddress(L"127.0.0.1", 7777),
MakeShared<IocpCore>(),
MakeShared<ServerSession>, // TODO : SessionManager 등
1);
클라이언트쪽에서 위와 같은 코드로 서버와 연결하기 위해
ServerCore 라이브러리를 통쨰로 클라이언트쪽으로 가져와야 하는데...
비쥬얼 스튜디오 2022에서
파일 --> 추가 --> 기존 프로젝트 메뉴 이 기능으로 ServerCore 프로젝트를
클라이언트 솔루션에 복사 하고,
파일탐색기에서도 ServerCore 폴더를 클라이언트쪽에 통쨰로 옮겼는데도
#include가 안되고 있는데, 방법을 알 수 있을까요??
클라이언트 솔루션에 ServerCore 프로젝트 추가완료
GameProjcet .cpp소스에서 ServerCore 쪽 파일들 인클루드 시도했으나 에러발생
답변 1
0
ServerCore는 .lib이고 정적 라이브러리 (.lib)을 다른 프로젝트에 추가하는 것을
구글에 검색해보시고 따라해보세요.
그냥 #include를 하면 안 되고,
라이브러리 경로와 헤더 경로 두개를 다 잡아줘야 합니다.
강의에서 ServerCore와 Server의 관계처럼 말이죠.
lib는 CPP가 빌드되어 결과로 만들어진 바이너리(실행) 파일에 가깝습니다.
단 독단적으로 실행될 수는 없고 다른 프로그램에 기생되어 실행되는
정적(static) 라이브러리입니다. 즉 실행파일(exe)의 라이브러리 버전이라고 생각하시면 됩니다.
.h의 시그니처 내용들이 포함되어 빌드된게 lib이니
말씀하신게 틀린 것은 아니지만 어찌됐건
정적으로 빌드하려면 헤더 파일들의 경로를 따로 알려주긴 해야 합니다.
자세한 내용은 C++ 컴파일러를 공부하지 않으면 어려운 내용이니 그냥 넘어가시는게 좋습니다.
헤더파일의 경로를 딴다는건
처음 헤더파일 추가시
C:\GameProject\PacketHandler\ServerCore\pch.h
또는
프로젝트 속성 --> C/C++ --> 일반 -->
추가포함 디렉토리 C:\GameProject\PacketHandler\ServerCore
이 2가지 방법중 하나로 진행하면 될까요?
강의에서 언급 해주시긴 했는데 어디있는지 찾지 못하고 있어 구글링으로 보고 있는데 올바른 방법인지 확인을 받고 싶습니다
이런저런 방법 다 시도해보다가
프로젝트 속성 --> 링커 --> 일반 --> 추가 라이브러리 디렉터리 --> C:\GameProject\PacketHandler\Libraries\ServerCore.lib
추가했더니 외부 프로젝트에서 #include와 빌드까지 성공했습니다
.lib파일안에 ServerCore의 .h와 .cpp들이 모두 포함되어 있어서 가능하게 된것일까요?
.lib파일 역할이 너무 궁금합니다