본문 바로가기
Visual Studio

[VS]Visual Studio에서 라이브러리를 만들고 사용하는법

by 계양구놈팽이 2023. 3. 4.

Visual studio에서 복수의 프로젝을 생성하고 사용하는 방법은 간단하다. (single exe with mulitple lib)

예시를 위하여 빈 프로젝트를 만들어보겠다. 

 

Step 1 Engine 프로젝트 생성

새로운 빈 프로젝트 생성

위의 예시에서는 libary역활을 할 Engine 프로젝트를 먼저 생성하였지만, exe를 빌들할 Application 프로젝트를 먼저 만들어도 괜찮다.

Engine 프로젝트에 소스코드를 담을 src폴더를 만들어 주었다.

Engine 프로젝트에 PrintMsg를 정적 멤버함수로 가지고 있는 HelloWorld 클래스를 생성하였다.

Library 구성 설정

이제 이 함수를 나중에 만들 Application 프로젝트에서 사용하기 위해서, 아래 사진과 같이 Engine의 속성 페이지로 가서 구성 애플리케이션에서 정적 라이브러리로 바꿔줘야 한다.

자 확인을 위해서 빌드를 해보자.

설정이 성공적으로 바뀌었다면, 위의 사진과 같이 *.lib 파일이 빌드 되었다고 메시지가 출력이 된다.

 

Step 2. Application 프로젝트 생성

솔루션을 마우스 오른쪽 클릭하여 새로운 프로젝트(Application)을 솔루션에 추가해주자.

Application 프로젝트가 추가되었다면, 이제 Engine의 libary를 사용할 수 있도록 설정해주자

Application 설정

추가 포함 디렉터리에 Engine의 소스코드 경로를 알려준다.

 

$(SolutionDir)은 솔수련의 경로를 제공하는 매크로이다.

 

HelloWorldcpp의 경로를 Application 프로젝트가 인지할 수 있게 되어, 경로를 지저분하게 입력하지 않고 작업을 할 수 있다.

이제 Application에서 HelloWorld.lib을 사용할 수 있도록, 프로젝트에 Reference(참조)를 추가해 줄 것이다.

솔루션에 포함된 프로젝트에서 만들어진 라이브러리를 참조하는 것이기에 간단하게 추가가 가능, 외부 라이브러리면 다른 방법 사용해야함

 

Engine을 체크해주고 확인을 눌러주면 된다.

이제 Engine에서 선언한 클래스의 정적 멤버 함수를 가져와서 적용하고, Application 프로젝트를 빌드 해보자.

Application이 Engine을 참조한다. Application을 다시 빌드 할때, Engine도 함께 빌드 되는 것을 볼 수 있다.(이해를 돕기 위해 사전에 빌드를 정리하고서 다시 빌드 하였다.)

이제 Application을 싱행하면, Engine.lib의 HelloWorld::PrintMsg() 함수가 호출되는 것을 볼 수 있다.

프로젝트가 비대해지거나, 제품군이 나뉠때 다양한 상황에서 프로젝트를 분리해줘야 하는 경우가 발생 할 수 있다.  

Visual Studio는 그러한 상황에서 쉽게 프로젝트를 나눌 수 있도록 지원한다.

'Visual Studio' 카테고리의 다른 글

VS에서 두개 이상의 프로젝트 동시에 실행하기  (0) 2023.03.13