관리 메뉴

History

[Visual] MFC 프로젝트 속성 -> 구성 속성 -> 일반 속성 본문

Visual Studio/Visual

[Visual] MFC 프로젝트 속성 -> 구성 속성 -> 일반 속성

luckybee 2023. 11. 21. 17:45
728x90
반응형

이번글은 프로젝트 속성 페이지인 구성 속성에 대해 알아보도록 하겠다. 

 

프로젝트의 "구성 속성"은 해당 프로젝트의 빌드 및 실행과 관련된 여러 설정을 포함한다. 이러한 설정을 통해 프로젝트의 동작을 세부적으로 제어하고 조정할 수 있다.

 

가장 많이 쓰는 핵심적인 5가지만 정리해 보았다.

 

1. 출력 디렉터리

이 속성은 해당 프로젝트가 컴파일이 됐을 때 프로그램이 배치될 경로이다. 

보통 건드리지 않았다면 아래와 같이 매크로가 지정이 됐을 것이다.

$(SolutionDir)$(Configuration)\

 

2. 중간 디렉터리

빌드 프로세스에서 생성된 파일이나 중간 결과물이 저장되는 디렉터리이다. 

주로 소스 코드 파일을 컴파일하고 링크한 후에 생성된 중간 바이너리 파일, obj 파일 등이 임시로 저장되는 공간이다.

 

이것도 특별히 건들이지 않았으면 아래처럼 설정이 되어있을 것이다.

$(Configuration)\

 

3. 대상 이름

프로젝트에서 생성할 프로그램의 파일 이름을 지정한다.

만약 dll을 내보내는 프로젝트의 대상 이름을 asd로 바꾸고 빌드를 하면 asd.dll이라는 dll이 생성될 것이다.

 

이제 여기서 잠깐 정리를 하면 대상 이름을 바꾸면 내보내는 파일 이름이 바뀌고파일이 만들어지는 임시 파일들은 중간 디렉터리에 묶여있고 빌드가 성공해서 출력된 파일출력 디렉터리에 위치해 있다.라고 설명하면 쉽게 이해할 수 있을 것이다.

 

 

입력 디렉터리 : 링커와 같은 도구에서 빌드 프로세스 중에 만들어진 모든 최종 출력 파일을 배치할 디렉터리를 지정


중간 디렉터리 : 컴파일러와 같은 같은 도구에서 빌드 프로세스 중에 만들어진 모든 중간 파일을 배치할 디렉터리를 지정


대상 이름 : 이 프로젝트가 생성하는 파일 이름을 지정

 

 

4. 구성 형식

여기서 내보낼 파일의 형식을 바꾸는 것이다. 

 

만약 실행파일이면 exe가 될 것이고, 라이브러리를 내보내면 lib가 될 것이다.

 

5. 플랫폼 도구 집합

이 속성은 visual 버전을 지정한다. 쉽게 설명해서 visual studio가 버전마다 실행하는 sdk가 다르다. 2019의 sln파일과 2022로 빌드된 sln 파일이 서로 실행하는 sdk가 다르기 때문이 버전에 맞게 sdk를 설정해야 한다. 만약 이 설정이 없다면

 

installer에 가서 다운받아야 한다.

 

 

 

많이 쓰이는 5가지는 설명이 끝났다. 이제 아래는 ms도움말에서 발췌한 매크로에 대한 종류와 설명이다.

매크로설명
$(Configuration) 현재 프로젝트 구성의 이름(예: "디버그")입니다.
$(DevEnvDir) Visual Studio의 설치 디렉터리(드라이브 + 경로로 정의됨); 에는 후행 백슬래시 '\'가 포함됩니다.
$(FrameworkDir) .NET Framework가 설치된 디렉터리입니다.
$(FrameworkSDKDir) .NET Framework를 설치한 디렉터리입니다. .NET Framework는 Visual Studio의 일부로 설치하거나 별도로 설치할 수 있습니다.
$(FrameworkVersion) Visual Studio에서 사용하는 .NET Framework의 버전입니다. Visual Studio에서 사용하는 .NET Framework 버전에 대한 전체 경로와 결합 $(FrameworkDir)됩니다.
$(FxCopDir) 파일의 경로입니다 fxcop.cmd . 파일이 fxcop.cmd 모든 Visual Studio 버전에 설치되지는 않습니다.
$(IntDir) 중간 파일에 대해 지정된 디렉터리 경로입니다. 상대 경로인 경우 중간 파일은 프로젝트 디렉터리에 추가된 이 경로로 이동합니다. 이 경로의 끝에는 슬래시가 있어야 합니다. 중간 디렉터리 속성의 값으로 확인됩니다 . 이 속성을 정의하는 데는 사용하지 $(OutDir) 마세요.
$(OutDir) 출력 파일 디렉터리에 대한 경로입니다. 상대 경로인 경우 출력 파일은 프로젝트 디렉터리에 추가된 이 경로로 이동합니다. 이 경로의 끝에는 슬래시가 있어야 합니다. 출력 디렉터리 속성의 값으로 확인됩니다 . 이 속성을 정의하는 데는 사용하지 $(IntDir) 마세요.
$(Platform) 현재 프로젝트 플랫폼의 이름(예: "Win32")입니다.
$(PlatformShortName) 현재 아키텍처의 짧은 이름(예: "x86" 또는 "x64")입니다.
$(ProjectDir) 프로젝트의 디렉터리(드라이브 + 경로로 정의됨) 에는 후행 백슬래시 '\'가 포함됩니다.
$(ProjectExt) 프로젝트의 파일 확장명입니다. 파일 확장명 앞에 '.'을 포함합니다.
$(ProjectFileName) 프로젝트의 파일 이름(기본 이름 + 파일 확장명으로 정의됨)입니다.
$(ProjectName) 프로젝트의 기본 이름입니다.
$(ProjectPath) 프로젝트의 절대 경로 이름(드라이브 + 경로 + 기본 이름 + 파일 확장명으로 정의됨)입니다.
$(PublishDir) 게시 대상의 출력 위치입니다. 에는 후행 백슬래시 '\'가 포함됩니다. 기본값은 폴더입니다 $(OutDir)app.publish\ .
$(RemoteMachine) 디버그 속성 페이지에서 Remote Machine 속성의 값으로 설정합니다. 자세한 내용은 C/C++ 디버그 구성에 대한 프로젝트 설정 변경을 참조하세요
$(RootNameSpace) 애플리케이션을 포함하는 네임스페이스(있는 경우)입니다.
$(SolutionDir) 솔루션의 디렉터리(드라이브 + 경로로 정의됨) 에는 후행 백슬래시 '\'가 포함됩니다. IDE에서 솔루션을 빌드할 때만 정의됩니다.
$(SolutionExt) 솔루션의 파일 확장명입니다. 파일 확장명 앞에 '.'을 포함합니다. IDE에서 솔루션을 빌드할 때만 정의됩니다.
$(SolutionFileName) 솔루션의 파일 이름(기본 이름 + 파일 확장명으로 정의됨)입니다. IDE에서 솔루션을 빌드할 때만 정의됩니다.
$(SolutionName) 솔루션의 기본 이름입니다. IDE에서 솔루션을 빌드할 때만 정의됩니다.
$(SolutionPath) 솔루션의 절대 경로 이름(드라이브 + 경로 + 기본 이름 + 파일 확장명으로 정의됨)입니다. IDE에서 솔루션을 빌드할 때만 정의됩니다.
$(TargetDir) 빌드에 대한 기본 출력 파일의 디렉터리(드라이브 + 경로로 정의됨) 에는 후행 백슬래시 '\'가 포함됩니다.
$(TargetExt) 빌드에 대한 기본 출력 파일의 파일 확장명입니다. 파일 확장명 앞에 '.'을 포함합니다.
$(TargetFileName) 빌드에 대한 기본 출력 파일의 파일 이름(기본이름 + 파일 확장명으로 정의됨)입니다.
$(TargetName) 빌드에 대한 기본 출력 파일의 기본 이름입니다.
$(TargetPath) 빌드에 대한 기본 출력 파일의 절대 경로 이름(드라이브 + 경로 + 기본 이름 + 파일 확장명으로 정의됨)입니다.
$(VCInstallDir) Visual Studio 설치의 C++ 컨텐츠가 들어 있는 디렉터리입니다. 이 속성에는 호스트 Visual Studio와 다를 수 있는 MSVC(대상 Microsoft C++) 도구 집합의 버전이 포함되어 있습니다. 예를 들어 빌드할 때 $(PlatformToolset) = v140$(VCInstallDir) Visual Studio 2015 설치 경로가 포함됩니다.
$(VSInstallDir) Visual Studio을 설치한 디렉터리입니다. 이 속성에는 대상 Visual Studio의 도구 집합 버전이 포함되며, 이 버전은 호스트 Visual Studio와 다를 수 있습니다. 예를 들어 빌드할 때 $(PlatformToolset) = v110$(VSInstallDir) Visual Studio 2012 설치 경로가 포함됩니다.
$(WebDeployPath) 웹 배포 루트에서 프로젝트 출력이 속하는 상대 경로입니다.
$(WebDeployRoot) 의 위치에 대한 절대 경로입니다 <localhost>. 예: c:\inetpub\wwwroot.

 

 

 

 

728x90
반응형
Comments