컴파일러 및 빌드 속성 설정
IDE에서 프로젝트를 빌드하는 데 필요한 모든 정보가 속성으로 노출됩니다. 이 정보에는 애플리케이션 이름, 확장명(예: DLL, LIB, EXE), 컴파일러 옵션, 링커 옵션, 디버거 설정, 사용자 지정 빌드 단계 및 다른 많은 항목이 포함됩니다. 일반적으로 속성 페이지를 사용하여 이러한 속성을 보고 수정합니다. 속성 페이지에 액세스하려면 주 메뉴에서 프로젝트>프로젝트 이름 속성을 선택하거나 솔루션 탐색기 프로젝트 노드를 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.
기본 속성
프로젝트를 만들 때 시스템은 다양한 속성에 대해 값을 지정합니다. 기본값은 프로젝트의 종류 및 앱 마법사에서 선택한 옵션에 따라 다소 다릅니다. 예를 들어 ATL 프로젝트에는 MIDL 파일과 관련된 속성이 있지만 이러한 속성은 기본 콘솔 애플리케이션에 없습니다. 기본 속성은 속성 페이지의 일반 창에 표시됩니다.
빌드 구성 및 대상 플랫폼에 속성 적용
애플리케이션 이름과 같은 일부 속성은 디버그 또는 릴리스 빌드에 관계없이 모든 빌드 변형 및 대상 플랫폼에 적용됩니다. 하지만 대부분의 속성은 구성에 종속적입니다. 올바른 코드를 생성하려면 컴파일러는 프로그램이 실행될 특정 플랫폼과 사용할 특정 컴파일러 옵션을 모두 알고 있습니다. 따라서 속성을 설정할 때 새 값이 적용되어야 하는 구성 및 플랫폼에 주의해야 합니다. Win32 빌드 디버그에만 적용해야 하나요, 아니면 디버그 ARM64 및 디버그 x64에도 적용해야 하나요? 예를 들어 Optimization 속성은 기본적으로 릴리스 구성에서 속도 최대화(/O2) 로 설정되지만 디버그 구성에서는 사용하지 않도록 설정됩니다.
속성 값이 적용되어야 하는 구성 및 플랫폼을 항상 보고 변경할 수 있습니다. 다음 그림에서는 맨 위에 구성 및 플랫폼 정보 컨트롤이 있는 속성 페이지를 보여 줍니다. 여기서 Optimization 속성을 설정하면 빨간색 화살표에 표시된 대로 현재 활성 구성인 Win32 빌드 디버그에만 적용됩니다.
다음 그림에서는 같은 프로젝트 속성 페이지를 보여주지만 구성은 릴리스로 변경되었습니다. 최적화 속성에 대해 다른 값입니다. 또한 활성 구성이 여전히 디버그입니다. 모든 구성에 대한 속성을 설정할 수 있으며, 활성 구성일 필요는 없습니다.
대상 플랫폼
대상 플랫폼 은 실행 파일이 실행될 디바이스 및 운영 체제의 종류를 나타냅니다. 1 초과 플랫폼에 대해 프로젝트를 빌드할 수 있습니다. C++ 프로젝트에 사용할 수 있는 대상 플랫폼은 프로젝트 종류에 따라 달라집니다. Win32, x64, ARM, ARM64, Android 및 iOS를 포함하지만 이에 국한되지 않습니다. Configuration Manager에서 확인할 수 있는 x86 대상 플랫폼은 네이티브 C++ 프로젝트의 Win32와 동일합니다. Win32는 32비트 Windows를 의미하고 x64는 64비트 Windows를 의미합니다. 이 두 플랫폼에 대한 자세한 내용은 실행 중인 32비트 애플리케이션을 참조합니다.
Configuration Manager 표시되는 모든 CPU 대상 플랫폼 값은 네이티브 C++ 프로젝트에 영향을 주지 않습니다. C++/CLI 및 기타 .NET 프로젝트 형식에만 관련이 있습니다. 자세한 내용은 (CLR 이미지 유형 지정)을 참조/CLRIMAGETYPE
하세요.
디버그 빌드에 대해 속성을 설정하는 방법은 다음 항목을 참조하세요.
- C++ 디버그 구성에 대한 프로젝트 설정
- 디버거 설정 및 준비
- 디버깅 준비: Visual C++ 프로젝트 형식
- Visual Studio 디버거에서 기호 파일(.pdb) 및 원본 파일 지정
C++ 컴파일러 및 링커 옵션
C++컴파일러 및 링커 옵션은 구성 속성의 왼쪽 창에 있는 C/C++ 및 링커 노드 아래에 있습니다. 이러한 옵션은 컴파일러에 전달될 명령줄 옵션으로 직접 변환됩니다. 특정 옵션에 대한 설명서를 읽으려면 가운데 창에서 옵션을 선택하고 F1을 누르세요. 또는 MSVC 컴파일러 옵션 및 MSVC 링커 옵션 에서 모든 옵션에 대한 설명서를 찾아볼 수 있습니다.
속성 페이지 대화 상자에는 현재 프로젝트와 관련이 있는 속성 페이지만 표시됩니다. 예를 들어 프로젝트에 파일이 없는 .idl
경우 MIDL 속성 페이지가 표시되지 않습니다. 각 속성 페이지의 설정에 대한 자세한 내용은 속성 페이지(C++)를 참조하세요.
디렉터리 및 경로 값
MSBuild는 매크로라는 디렉터리 및 경로 포함과 같은 특정 문자열 값에 컴파일 시간 상수를 사용하도록 지원 합니다. 매크로는 Visual Studio 또는 MSBuild 시스템에서 정의한 값 또는 사용자 정의 값을 참조할 수 있습니다. 매크로는 또는 %(item-macro-name)
와 같습니다$(macro-name)
. 속성 페이지는 속성 페이지에 노출되며, 여기서 속성 편집기를 사용하여 참조하고 수정할 수 있습니다. 디렉터리 경로와 같이 하드 코딩된 값 대신 매크로를 사용합니다. 매크로를 사용하면 컴퓨터 간 및 Visual Studio 버전 간에 속성 설정을 더 쉽게 공유할 수 있습니다. 또한 프로젝트 설정이 속성 상속에 올바르게 참여하는지 더 잘 확인할 수 있습니다.
다음 그림은 Visual Studio C++ 프로젝트에 대한 속성 페이지를 나타낸 것입니다. 왼쪽 창에서 VC++ 디렉터리규칙이 선택되고 오른쪽 창에 해당 규칙과 연결된 속성이 나열됩니다. 속성 값은 종종 매크로(예: $(VC_SourcePath)
)입니다.
속성 편집기를 사용하여 사용 가능한 모든 매크로의 값을 볼 수 있습니다.
미리 정의된 매크로
전역 매크로:
전역 매크로는 프로젝트 구성의 모든 항목에 적용됩니다. 전역 매크로에는 구문$(name)
이 있습니다. 전역 매크로의 예제는$(VCInstallDir)
이며, Visual Studio 설치의 루트 디렉터리에 저장됩니다. 전역 매크로는 MSBuild의PropertyGroup
에 해당합니다.항목 매크로
항목 매크로에는 구문%(name)
이 있습니다. 파일에 대한 항목 매크로는 해당 파일에만 적용됩니다. 예를 들어,%(AdditionalIncludeDirectories)
를 사용하여 특정 파일에만 적용되는 포함 디렉터리를 지정하고 포함할 수 있습니다. 이러한 종류의 항목 매크로는 MSBuild의ItemGroup
메타데이터에 해당합니다. 프로젝트 구성의 컨텍스트에서 사용되면 항목 매크로는 특정 형식의 모든 파일에 적용됩니다. 예를 들어 C/C++ 전처리기 정의 구성 속성은 프로젝트의 모든 .cpp 파일에 적용되는%(PreprocessorDefinitions)
항목 매크로를 사용할 수 있습니다. 이러한 종류의 항목 매크로는 MSBuild의ItemDefinitionGroup
메타데이터에 해당합니다. 자세한 내용은 항목 정의를 참조하세요.
사용자 정의 매크로
사용자 정의 매크로를 만들어 프로젝트 빌드에서 변수로 사용할 수 있습니다. 예를 들어, 사용자 지정 빌드 단계 또는 사용자 지정 빌드 도구에 가치를 제공하는 사용자 정의 매크로를 만들 수 있습니다. 사용자 정의 매크로는 이름/값 쌍입니다. 프로젝트 파일에서 $(name)
표기법을 사용하여 값에 액세스합니다.
사용자 정의 매크로는 속성 시트에 저장됩니다. 프로젝트에 속성 시트가 아직 없는 경우 Visual Studio 프로젝트 설정 공유 또는 다시 사용의 단계에 따라 만들 수 있습니다.
사용자 정의 매크로를 만들려면
속성 관리자 창을 엽니다. (메뉴 모음에서 보기를> 선택합니다. 속성 관리자 또는다른 Windows>속성 관리자보기>.) 속성 시트의 바로 가기 메뉴를 열고(이름이 로
.user
끝납니다) 속성을 선택합니다. 해당 속성 시트의 속성 페이지 대화 상자가 열립니다.대화 상자의 왼쪽 창에서 사용자 매크로를 선택합니다. 오른쪽 창에서 매크로 추가 단추를 선택하여 사용자 매크로 추가 대화 상자를 엽니다.
대화 상자에서 매크로에 대한 이름 및 값을 지정합니다. 또는 이 매크로를 빌드 환경의 환경 변수로 설정 확인란을 선택합니다.
속성 편집기
속성 편집기를 사용하여 특정 문자열 속성을 수정하고 값으로 매크로를 선택할 수 있습니다. 속성 편집기에 액세스하려면 속성 페이지에서 속성을 선택한 후 오른쪽에 있는 아래쪽 화살표 단추를 선택합니다. 드롭다운 목록에 편집>이< 포함된 경우 해당 속성에 대한 속성 편집기를 표시하도록 선택할 수 있습니다.
속성 편집기에서 매크로 단추를 선택하여 사용 가능한 매크로와 해당 현재 값을 볼 수 있습니다. 다음 그림에서는 매크로 단추 선택 후 추가 포함 디렉터리 속성에 대한 속성 편집기를 보여 줍니다. 부모 또는 프로젝트 기본값에서 상속 확인란을 선택하고 새 값을 추가하면 현재 상속되는 모든 값에 추가됩니다. 확인란의 선택을 취소하면 새 값이 상속된 값을 대체합니다. 대부분의 경우 확인란을 선택한 상태로 둡니다.
기본 디렉터리 집합에 포함 디렉터리 추가
프로젝트에 포함 디렉터리를 추가하는 경우 모든 기본 디렉터리를 재정의하지 않는 것이 중요합니다. 디렉터리를 추가하는 올바른 방법은 새 경로(예: "C:\MyNewIncludeDir\
")를 추가한 다음 매크로를 속성 값에 추가하는 $(IncludePath)
것입니다.
모든 속성을 신속하게 찾고 검색
모든 옵션 속성 페이지(속성 페이지 대화 상자의 구성 속성>C/C++ 노드 아래)에서는 현재 컨텍스트에서 사용할 수 있는 속성을 빠르게 찾아 검색할 수 있습니다. 이 페이지에는 특수 검색 상자 및 결과를 필터링할 수 있는 간단한 구문이 있습니다.
접두사 없음:
속성 이름에서만 검색합니다(부분 문자열 대/소문자 구분 안 함).
'/
' 또는 '-
':
컴파일러 스위치에서만 검색합니다(접두사 대/소문자 구분 안 함).
v
:
값에서만 검색합니다(부분 문자열 대/소문자 구분 안 함).
빌드에 대한 환경 변수 설정
MSVC 컴파일러(cl.exe)는 특정 환경 변수, 특히 LIB
, , LIBPATH
PATH
및 INCLUDE
를 인식합니다. IDE를 사용하여 빌드할 때 VC++ 디렉터리 속성 페이지에서 설정된 속성을 사용하여 해당 환경 변수를 설정합니다. , LIBPATH
및 INCLUDE
값이 개발자 명령 프롬프트에 의해 이미 설정된 경우 LIB
해당 MSBuild 속성의 값으로 대체됩니다. 그런 다음 빌드는 VC++ 디렉터리 실행 파일 디렉터리 속성 PATH
의 값을 에 추가합니다. 사용자 정의 매크로를 만든 다음, 이 매크로를 빌드 환경의 환경 변수로 설정 상자를 선택하여 사용자 정의 환경 변수를 설정할 수 있습니다.
디버깅 세션에 대한 환경 변수 설정
프로젝트의 속성 페이지 대화 상자의 왼쪽 창에서 구성 속성 을 확장하고 디버깅을 선택합니다.
오른쪽 창에서 환경 또는 환경 병합 프로젝트 설정을 수정한 다음, 확인 단추를 선택합니다.
단원 내용
Visual Studio 프로젝트 설정 공유 또는 재사용
공유하거나 다시 사용할 수 있는 .props
사용자 지정 빌드 설정을 사용하여 파일을 만드는 방법입니다.
프로젝트 속성 상속
빌드 프로세스의 , , .targets
.vcxproj
파일 및 환경 변수에 대한 .props
평가 순서를 설명합니다.
프로젝트 파일을 변경하지 않고 속성 및 대상 수정
프로젝트 파일을 수정하지 않고 임시 빌드 설정을 만드는 방법
참조
Visual Studio 프로젝트 - C++
.vcxproj
및 .props
파일 구조
속성 페이지 XML 파일