프로그램이 너무 복잡해져서 솔루션 안에 프로젝트를 여러 개로 분리하였다.
메인 프로젝트를 제외하고 나머지를 static library로 작성하였다.
1. header 참조
메인 프로젝트 속성에서
Configuration Properties - C/C++ - General - Additional Include Directories
에서 각 프로젝트 디렉토리로 설정하고.
메인 프로젝트에서 다른 프로젝트의 header 파일을 Add Existing Item 을 이용해 추가한다.
2. library 포함
메인 프로젝트 속성에서
Configuration Properties - Linker - General - Additional Library Directories
에서 해당 lib 디렉토리 추가 (솔루션 밑에 Release에 들어 있음)
Configuration Properties - Linker - Input - Additional Dependencies
에 해당 lib 이름을 추가
3. compile 속성 일치
모든 프로젝트에서
Configuration Properties - C/C++ - Code Generation - Runtime Library
를 전부 일치시킴. (나는 Multi-threaded로 일치)
일치시키지 않으면 다른 library 가져다 쓰는 과정에서 LNK 2005 에러가 생긴다.
예를 들어 msvcprt.lib 와 libcpmt.lib 가 같은 함수를 포함하기 때문에
name conflict가 생기는 것으로 볼 수 있다.