Programming

Visual C ++ : # 동일한 솔루션으로 다른 프로젝트의 파일 포함

procodes 2020. 8. 3. 20:41
반응형

Visual C ++ : # 동일한 솔루션으로 다른 프로젝트의 파일 포함


Visual C ++를 사용하여 게임을하고 있습니다. 별도의 프로젝트에 일부 구성 요소가 있으며 프로젝트 종속성을 설정했습니다. 다른 프로젝트의 헤더 파일을 #include하는 방법은 무엇입니까? 한 프로젝트의 클래스를 다른 프로젝트에서 사용하는 방법을 모르겠습니다.


컴파일러 설정

다른 프로젝트 의 헤더 파일을 #include하려는 프로젝트에서 프로젝트 구성 Additional Include Directories 섹션에 헤더 파일의 경로를 추가해야 합니다.

프로젝트 구성에 액세스하려면

  1. 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택하십시오.
  2. 구성 특성-> C / C ++-> 일반을 선택하십시오.
  3. 추가 포함 디렉토리에서 경로를 설정하십시오.

포함하는 방법

헤더 파일포함 시키 려면 코드에 다음을 작성하십시오.

#include "filename.h"

추가 포함 디렉토리에 디렉토리가 이미 포함되어 있으므로 경로를 지정할 필요가 없으므로 Visual Studio는 해당 디렉토리를 찾을 위치를 알고 있습니다.

프로젝트 설정에서 모든 헤더 파일 위치를 추가하지 않으려면 특정 지점까지 디렉토리를 포함시킨 다음 해당 지점을 기준으로 #include를 포함하면됩니다.

// In project settings
Additional Include Directories    ..\..\libroot

// In code
#include "lib1/lib1.h"    // path is relative to libroot
#include "lib2/lib2.h"    // path is relative to libroot

링커 설정

정적 라이브러리 (예 : .lib 파일)를 사용하는 경우 링크 타임에 심볼을 연결할 수 있도록 링커 입력에 라이브러리를 추가해야합니다 (그렇지 않으면 해결되지 않은 심볼이 표시됨).

  1. 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택하십시오.
  2. 구성 특성-> 링커-> 입력을 선택하십시오.
  3. 추가 종속성 아래에 라이브러리를 입력하십시오.

#include프로젝트와는 아무런 관련이 없습니다. 단지 전처리기에 "헤더 파일의 내용을 여기에 넣습니다"라고 알려줍니다. 올바른 위치를 가리키는 경로를 제공하면 (../your_file.h와 같은 상대 경로 일 수 있음) 올바르게 포함됩니다.

그러나 이러한 프로젝트를 올바르게 연결하려면 라이브러리 (정적 / 동적 라이브러리)에 대해 배워야합니다. 그러나 이것은 또 다른 질문입니다.


프로젝트 속성에서 헤더 경로를 설정해야 헤더 파일을 찾으려고 할 때 컴파일러에서 찾을 수 있습니다. 정확한 위치를 기억할 수는 없지만 프로젝트 속성을 보면 볼 수 있습니다.


절대적이든 상대적이든 #include 지시문에서 완전한 경로 참조를 피하십시오. 대신 프로젝트 설정에서 다른 프로젝트의 포함 폴더 위치를 추가하십시오. 필요한 경우 경로 참조에 하위 폴더 만 사용하십시오. 그렇게하면 코드를 업데이트하지 않고도 쉽게 이동할 수 있습니다.


두 프로젝트 모두 동일한 솔루션을 사용하므로 https://docs.microsoft.com/en-us/cpp/build/adding-references-in-visual-cpp-에 설명 된대로 포함 파일 및 링커에 대한 간단한 방법이 있습니다. 프로젝트? view = vs-2019 :

  1. 포함은 상대 경로 (Eg #include "../libProject/libHeader.h")에 기록 될 수 있습니다 .
  2. 링커의 경우 "참조"를 마우스 오른쪽 단추로 클릭하고 참조 추가를 클릭 한 후 다른 프로젝트를 선택하십시오.

참고 URL : https://stackoverflow.com/questions/601268/visual-c-include-files-from-other-projects-in-the-same-solution

반응형