내가 먼저 요구 사항은 라이브러리에서 필요한 결정할 것 : 해제/
- 디버그
- 유니 코드 지원이 결정은 다음을 수
- 등등 ..
자신이나 다른 라이브러리 사용자가 필요로하는 각 조합에 대한 구성을 작성하십시오.
컴파일 및 링크 할 때 라이브러리와 실행 파일을 사용되는 구성에 따라 일관성있게 유지하는 것이 중요합니다. 즉, 연결시 릴리스 & 디버그를 섞어 쓰지 마십시오. Windows/VS 플랫폼에서 디버그 & 릴리스 라이브러리가 실행 파일 내에 혼합되어 있으면 미묘한 메모리 문제가 발생할 수 있음을 알고 있습니다.
Brian은 Visual Studio에 언급 했으므로 Configuration Manager를 사용하여 빌드해야하는 각 구성을 원하는 방식으로 설정하는 것이 가장 좋습니다.
예를 들어 우리 프로젝트에서는 빌드 할 실행 파일에 따라 다음 구성을 사용할 수 있어야합니다.
- 디버그 + 유니 코드
- 디버그 + ASCII
- 릴리스 + 유니 코드
- 릴리스 + ASCII이 특정 프로젝트의 사용자
는 그들의 실행 요구 사항에 맞게 구성 관리자를 사용하여 프로젝트의 사용 가능한 구성.
매크로 사용과 관련하여 함수의 디버그 또는 릴리스 버전이 링크되는 것과 같이 요구 사항에 대한 컴파일 시간 결정을 구현할 때 광범위하게 사용됩니다. VS를 사용하는 경우 사전 처리기 정의 속성을보고 다양한 매크로가 정의 된 방식을 볼 수 있습니다. _DEBUG _RELEASE, 이것은 구성이 컴파일 된 것을 제어하는 방법입니다.
프로젝트를 컴파일/링크하는 데 사용하는 플랫폼은 무엇입니까?
편집 : 업데이트 된 댓글 확장
구성 관리자 옵션을 사용할 수없는 경우 다음 내가 프로젝트에서 다음 속성을 사용하는 것이 좋습니다 :
- 링커 ->추가 라이브러리 디렉토리 또는 링커 ->입력
매크로 사용 $(ConfigurationName)
은 적절한 라이브러리 구성과 연결합니다. 디버그/릴리스.
$(ProjectDir)\..\third-party-prj\$(ConfigurationName)\third-party.lib
- 빌드 이벤트 또는 사용자 지정 빌드에 종속 프로젝트에서 필요한 라이브러리 파일 (들) 전 (또는 후)의 사본을 실행 단계를 구성 등록
구축 발생합니다.
xcopy $(ProjectDir)\..\third-party-prj\$(ConfigurationName)\third-party.dll $(IntDir)
매크로 $(ProjectDir)
현재 프로젝트의 위치에 대한 치환 동작 현재 프로젝트에 대해 발생하는 원인이된다.
$(ConfigurationName)
매크로가 현재 선택된 구성 (기본값은
Debug
또는
Release
)으로 대체되어 현재 구성중인 구성에 따라 올바른 항목을 복사 할 수 있습니다.
프로젝트 구성에 일반 명명 규칙을 사용하면 $(ConfigurationName)
매크로를 사용할 수 있으므로 도움이됩니다. 그렇지 않으면 단순히 고정 된 문자열을 사용할 수 있습니다.