C++ 라이브러리 (헤더 집합, 가져 오기 라이브러리 및 DLL)를 구축 중입니다. 이 라이브러리를 사용하고자하는 개발자라면이 라이브러리를 가능한 한 쉽게 사용하고 싶습니다. 특히이 라이브러리의 소비자는 프로젝트의 다른 구성 (Debug | Release 및 x86/x64/ARM)에 대해 헤더 경로, 라이브러리 경로 및 라이브러리를 수동으로 변경하는 것에 대해 걱정할 필요가 없습니다. 속성 시트를 사용하여이 작업을 수행 할 수 있음을 알고 있습니다. 이 목적을 위해 6 개의 다른 속성 시트를 만들었습니다 (각 구성마다 하나씩).C++ 라이브러리 사용을 쉽게하기 위해 Visual Studio 속성 시트 만들기
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<_PropertySheetDisplayName>MyCPPLib, 1.0</_PropertySheetDisplayName>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>$INCLUDEPATH;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<AdditionalLibraryDirectories>$(AdditionalLibraryDirectories);$LIBPATH\x86\Debug</AdditionalLibraryDirectories>
<AdditionalDependencies>MyCPPLib.lib;$(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
</Project>
하는 나는 그것이 가능 할 수있는 단 하나의 소품 파일을 만들 수 있는지 알고 싶어 : | (매크로의 INCLUDEPATH 및 LIBPATH가 올바르게 정의되어 있다고 가정 디버그 버전 만 86 목록) 각각의 시트는 다음과 같습니다 사용자의 활성 구성이 무엇이든간에 6 가지 구성을 모두 고려해야합니까? 그 파일은 어떻게 생겼을까요? 당신은 단지 같은 구조로 라이브러리 바이너리를 설치할 수 있습니다
누군가가 표준 "Release"및 "Debug"구성 이상을 정의하는 것이 가능할 수도 있음을 명심하십시오. 예를 들어, 정적 라이브러리를 빌드하는 것과 .dll을 빌드하는 것을 구별하기 위해 사용자 지정 구성을 정의하는 몇 가지 프로젝트를 알고 있습니다. –
@BillyONeal 예. 내 라이브러리에 대한 기본 "디버그"및 "릴리스"를 지원하는 것이 기쁠 것입니다. 나는이 속성 시트 물건에 새로운입니다. 이 6 가지 결합에 대해 어떻게 보일지 아십니까? –
흠, 나는 얼마 전에 그런 짓을했다. 나는 내일 그것을보아야하는 것을 잊지 않으려 고 노력할 것이다. 실현의 열쇠는 실제로는 MSBuild 파일이라는 것입니다. 그리고 당신은 평범한 MSBuild에서 조건을 잘 수행 할 수 있습니다 (하지만 구문을 기억할 수는 없습니다). 플랫폼 구성과는 별도로 빌드 구성 (디버그/릴리스)을 처리하기 시작했을 때 내 등록 정보 시트가 훨씬 단순 해졌음을 알았습니다. "바보 같은"문자열 하나를 연결 한 다음 빌드 설정을 결정하는 데 사용합니다 "컨벤션 기본적으로 VS 프로젝트 파일에 있습니다. :) – jalf