-
[Visual Studio] Solution & ProjectC++/미분류 2022. 6. 7. 18:04
프로젝트(Project)는 일반적으로 하나의 실행 파일, 혹은 그에 준하는 무언가(라이브러리 등)의 결과를 산출합니다.
하지만, 이것이 특정 문제의 "해답"이라고 볼 수 없거나, 한 개의 프로젝트로 묶기에는 연관성이 떨어지는 경우가 존재합니다.
예를 들어, 특정 라이브러리를 만든다거나, 서버와 클라이언트로 나뉘어있는 경우가 그럴 수 있습니다.
Visual Studio, 그리고 대부분의 IDE는 이러한 상황을 능동적으로 다룰 수 있는 기능이 있습니다.
이번 글에서는 이에 관해 다루어 보도록 하겠습니다.
1. 솔루션과 프로젝트 만들기 및 추가
더보기솔루션은 프로젝트들을 담을 수 있는 컨테이너 입니다.
프로젝트가 모여서 솔루션이 된다고 생각해도 무방할 것 같습니다.
Visual Studio는 처음 프로젝트를 만들 때, 솔루션을 설정할 수 있습니다.
Visual Studio에서, 솔루션과 프로젝트를 분리해보도록 하겠습니다
새 프로젝트를 만들어, 프로젝트와 솔루션을 분리합니다.
만약 분리할 필요가 없을 경우, 하단의 "솔루션 및 프로젝트를 같은 디렉터리에 배치"를 체크하여 분리하지 않을 수 있습니다.
우측 탐색기의 솔루션 하단에 프로젝트가 있는 것을 볼 수 있습니다.
여기에 프로젝트를 추가해야 할 경우, 솔루션을 우클릭 하여 추가할 수 있습니다.
두 개의 프로젝트를 추가 한 모습입니다.
2. 프로젝트 시작점 설정
더보기위와 같이 프로젝트를 분리할 경우, main함수가 두 개 이상이 될 수 있습니다.
하지만 기본적으로 디버깅을 할 시 시작되는 main함수는 처음 만든 프로젝트로 고정됩니다.
이 점은 솔루션 우클릭 -> 속성을 통해 변경할 수 있습니다.
기본적으로는 처음 생성한 프로젝트로 설정됩니다.
이것을 변경하는 것으로 프로젝트의 시작점을 변경할 수 있습니다.
3. 프로젝트 간 공유
더보기한 솔루션 내부에 프로젝트를 여러개 둘 경우, 솔루션 간 의존성이 생길 수 있습니다.
한 프로젝트가 라이브러리 용도로 만들어졌을 경우가 그러합니다.
이 경우, 라이브러리 프로젝트를 다른 프로젝트에서 사용하기 위해 추가적인 작업이 필요합니다.
위와 같이 라이브러리를 만들기 위한 프로젝트 MyLib을 MyProject에서 사용할 수 있도록 해보겠습니다.
우선, MyLib프로젝트를 우클릭하여 속성 페이지에 들어갑니다.
이후 구성 형식을 정적 라이브러리로 변경합니다.
이 과정은 프로젝트를 추가할 때 정적 라이브러리로 생성했을 경우 이미 설정되어 있습니다.
정적 라이브러리(.lib)가 아닌 동적 라이브러리(.dll)를 추가하는 방법은 차후 다른 글에서 다룰 수 있도록 하겠습니다.
이제 탐색기에서 라이브러리를 사용할 프로젝트의 참조 탭을 우클릭하여 라이브러리를 추가할 수 있습니다.
마지막으로 사용할 프로젝트를 우클릭하여 속성 페이지로 들어간 후, C/C++탭의 추가 포함 디렉터리에 라이브러리 폴더를 추가하는 것으로 완료됩니다.
디렉토리는 정적 디렉토리 주소를 입력해도 되지만, Visual Studio의 매크로 기능을 활용해서 간략하게 표현할 수 있습니다.
$(SolutionDir)매크로는 솔루션 디렉토리에 매핑이 되어 있습니다.
이것으로 솔루션 내 다른 프로젝트의 클래스, 함수를 사용할 수 있습니다.
프로젝트를 솔루션으로 묶어주는 것은 Visual Studio에만 있는 것이 아닙니다.
IntelliJ는 프로젝트와 모듈이라는 용어를 통해 위와 같은 관리를 수행할 수 있습니다.
Visual Studio에는 여러 기능이 많이 있습니다.
코딩을 하고, 실행을 하고, 중단점을 설정하면서 디버깅을 하는 것 이외에도 여러 부가 기능들이 있어 개발을 더 효율적으로 할 수 있습니다.
오늘은 여러 프로젝트를 한번에 관리하는 방법에 대하여 알아보았습니다.
감사합니다.
'C++ > 미분류' 카테고리의 다른 글
[C++] 랜덤 이벤트 (확률) 구현하기 (0) 2022.10.06 [Visual Studio] Code style 변경하기 (BSD, K&R) (0) 2022.09.14 [WinAPI] Edit Control에서 Enter키 입력 받기 (0) 2022.06.22 [Visual Studio] LNK2019, LNK1120 (0) 2022.06.13 [C++] Boost 라이브러리 설치 & Visual Studio 설정 (0) 2022.03.10