다음을 통해 공유


방법: 빌드할 프로젝트 출력 파일 구성

이 항목에서는 프로젝트 출력 파일을 구성하는 최선의 방법을 설명합니다.프로젝트 출력 파일을 잘못 설정하면 빌드 오류가 발생할 수 있습니다.이 항목에서는 또한 프로젝트 출력 파일을 구성하는 여러 방법에 대해 각각의 장점과 단점을 요약합니다.

CLR 어셈블리 참조

#using을 사용하여 어셈블리를 참조하려면

  • #using <System.Data.dll>과 같이 #using 지시문을 사용하여 코드에서 직접 어셈블리를 참조할 수 있습니다.자세한 내용은 # 지시문 (c)을 참조하십시오.

    지정된 파일이 MSIL로 작성된 경우 .dll, .exe,.netmodule 또는 .obj일 수 있습니다.참조된 구성 요소는 모든 언어로 빌드될 수 있습니다.이 옵션을 사용하면 MSIL에서 메타데이터를 추출할 수 있으므로 Intellisense에 대한 액세스 권한을 갖게 됩니다.해당 파일은 프로젝트의 경로에 있어야 합니다. 그렇지 않으면 프로젝트가 컴파일되지 않고 Intellisense를 사용할 수 없게 됩니다.파일이 해당 경로에 있는지 확인하는 간단한 방법은 #using 줄을 마우스 오른쪽 단추로 클릭하고 문서 열기 명령을 선택하는 것입니다.파일을 찾을 수 없으면 알림 메시지가 나타납니다.

    파일에 대한 전체 경로를 사용하지 않으려는 경우 /AI 컴파일러 옵션을 사용하여 #using 참조에 대한 검색 경로를 편집하면 됩니다.자세한 내용은 /AI(메타데이터 디렉터리 지정)를 참조하십시오.

/FU를 사용하여 어셈블리를 참조하려면

  • 위에서 설명한 대로 코드 파일에서 직접 어셈블리를 참조하는 대신 /FU 컴파일러 옵션을 사용할 수 있습니다.이 방법의 장점은 지정한 어셈블리를 참조하는 모든 파일에 각각 #using 문을 추가할 필요가 없다는 점입니다.

    이 옵션을 설정하려면 프로젝트의 속성 페이지를 엽니다.구성 속성 노드를 확장한 다음 C/C++ 노드를 확장하고 고급을 선택합니다.원하는 어셈블리를 #using 강제 옆에 추가합니다.자세한 내용은 /FU(강제 #using 파일 이름 지정)를 참조하십시오.

새 참조 추가를 사용하여 어셈블리를 참조하려면

  1. 이것은 CLR 어셈블리를 사용하는 가장 쉬운 방법입니다.우선 프로젝트가 /clr 컴파일러 옵션을 사용하여 컴파일되었는지 확인합니다.그런 다음 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 참조를 선택합니다.속성 페이지 대화 상자가 나타납니다.

  2. 속성 페이지 대화 상자에서 새 참조 추가를 선택합니다.현재 프로젝트에서 사용할 수 있는 모든 .NET, COM 및 기타 어셈블리를 나열하는 대화 상자가 나타납니다.원하는 어셈블리를 선택하고 확인을 클릭합니다.

    프로젝트 참조가 설정되면 해당 종속성이 자동으로 처리됩니다.또한 메타데이터가 어셈블리의 일부이므로 헤더 파일을 추가하거나 관리되는 어셈블리에서 사용되고 있는 요소를 프로토타입화할 필요가 없습니다.

네이티브 DLL 또는 정적 라이브러리 참조

네이티브 DLL 또는 정적 라이브러리를 참조하려면

  1. #include 지시문을 사용하여 코드에서 적절한 헤더 파일을 참조합니다.헤더 파일은 포함 경로에 있거나 현재 프로젝트의 일부여야 합니다.자세한 내용은 # include 지시문 (C/C++)를 참조하십시오.

  2. 프로젝트 종속성을 설정할 수도 있습니다.프로젝트 종속성을 설정하면 두 가지가 보장됩니다.첫째, 특정 프로젝트에서 필요로 하는 종속 파일을 항상 찾을 수 있도록 프로젝트들이 정확한 순서로 빌드됩니다.둘째, 종속 프로젝트의 출력 디렉터리가 암시적으로 경로에 추가되어 링크 타임에 해당 파일을 쉽게 찾을 수 있습니다.

  3. 응용 프로그램을 배포하려면 DLL을 적절한 위치에 배치해야 합니다.다음 위치 중 하나일 수 있습니다.

    1. 실행 파일과 같은 경로

    2. 시스템 경로(path 환경 변수)에 있는 모든 위치

    3. side-by-side 어셈블리.자세한 내용은 C/C++ side-by-side 어셈블리 빌드를 참조하십시오.

여러 프로젝트 작업

기본적으로 프로젝트는 모든 출력 파일이 프로젝트 디렉터리의 하위 디렉터리에 만들어지도록 빌드됩니다.이 디렉터리의 이름은 빌드 구성(예:디버그 또는 릴리스)에 따라 지정됩니다.형제 프로젝트가 서로 참조되도록 하려면 각 프로젝트에서 다른 프로젝트 출력 디렉터리를 해당 경로에 명시적으로 추가해야 성공적으로 링크될 수 있습니다.프로젝트 종속성을 설정하면 이 작업이 자동으로 수행됩니다.그러나 종속성을 사용하지 않으면 빌드 관리가 매우 어려워질 수 있으므로 이를 신중하게 처리해야 합니다.예를 들어, 프로젝트에서 디버그 및 릴리스 구성을 사용하며 형제 프로젝트의 외부 라이브러리를 포함하는 경우 빌드되는 구성에 따라 다른 라이브러리 파일을 사용해야 합니다.따라서 이러한 경로를 하드 코드하는 작업은 복잡할 수 있습니다.

실행 파일, 증분 링커 파일, PDB 파일 등의 필수적인 출력 파일은 모두 공용 솔루션 디렉터리로 복사됩니다.따라서 동일한 구성을 사용하는 많은 C++ 프로젝트가 포함된 솔루션을 사용하여 작업할 때 링크와 배포를 단순화하기 위하여 모든 출력 파일이 중앙 집중식으로 구성됩니다.해당 응용 프로그램/라이브러리는 모든 출력 파일을 함께 유지할 경우 출력 파일이 반드시 해당 경로에 있으므로 예상대로 작동합니다.

출력 파일의 위치는 프로덕션 환경으로 배포될 때 중요한 문제가 될 수 있습니다.IDE에서 프로젝트를 실행하는 동안에는 포함된 라이브러리에 대한 경로가 프로덕션 환경과 반드시 같을 필요는 없습니다.예를 들어, 코드에 #using "../../lib/debug/mylib.dll"이 있으나 mylib.dll을 다른 상대 위치로 배포하는 경우 응용 프로그램에서 런타임 오류가 발생합니다.이것을 방지하려면 코드의 #include 문에 상대 경로를 사용하지 마십시오.필요한 파일을 프로젝트 빌드 경로에 배치하고 해당 프로덕션 파일도 마찬가지로 적절하게 배치하는 것이 좋습니다.

출력 파일의 위치 지정 방법

  • 프로젝트 출력 위치 설정은 프로젝트의 속성 페이지에서 찾을 수 있습니다.구성 속성 옆의 노드를 확장하고 일반을 선택합니다.출력 위치는 출력 디렉터리 옆에 지정되어 있습니다.자세한 내용은 일반 속성 페이지(프로젝트)를 참조하십시오.

참고 항목

개념

Visual C++ 프로젝트 형식