2010-08-11 4 views
9

2010 CRT는 Windows XP SP2에서 릴리스 된 기능을 사용하기 때문에 VS2010과 함께 제공되는 C 런타임을 수정해야하며 Windows 2000에 배포 할 수 있어야합니다.VS 2010의 C 런타임 라이브러리를 빌드하려면 어떻게해야합니까?

특히, 모든 전화는 EncodePointerDecodePointer입니다.

C 런타임의 소스는 Microsoft Visual Studio 10.0 \ VC \ crt \ src에 포함되어 있으므로 소스를 약간 수정 한 후에 런타임을 빌드 할 수 있어야합니다. .

아, 런타임의 동적 버전 (정적 버전 만)을 빌드 할 필요가 없습니다. (나는 그들의 시스템에 CRT를 설치하는 사용자에게 의존 할 수 없다).

VS2008와

및 이전 버전이 어떻게 CRT를 구축하는 기술 MSDN의 튜토리얼 이었지만, 2010 년

을 위해 그것을 그런 일이 가능 찾을 수 없습니다?

+0

가능한 속담 : http://stackoverflow.com/questions/2484511/can-i-use-visual-studio-2010s-c-compiler-with-visual-studio-2008s-c-runtime –

+0

@clark : 아니요 그 질문은 VS2010과 함께 VS2008의 CRT를 사용하는 것에 관한 것입니다. 여기에 VS2010의 CRT를 사용할 수 있는지 묻는 중입니다. 그러나이를 수정하여 직접 의존성을 제거하십시오. –

+0

나는 본다. 괜찮아. /15chars –

답변

6

여기는 MSDN link입니다. VS2010에서 직접해야하는 것처럼 보입니다.

다음 컴파일러 및 링커 옵션을 사용하여 MFC, CRT 및 ATL 라이브러리를 다시 작성할 수 있습니다. Visual C++ 2010부터는 이러한 라이브러리를 다시 작성하기위한 스크립트가 더 이상 제공되지 않습니다.

+1

Damnit. 그래서 기본적으로 나는 망했다. : –

+0

@Billy : CRT를 제작하기위한 프로젝트 설정의 어려움에 직면 해있는 것 같지 않음 –

+1

그래,하지만 실제로 어떤 파일이 CRT에 있는지 알지 못하기 때문에 프로젝트를 어렵게 만듭니다. –

0

옵션 인 경우 사용자 지정 CRT를 만드는 대신 VS2010 내에서 VC++ 2008 도구 집합을 사용하는 것이 좋습니다. 절차는 here으로 설명되어 있습니다.

+0

그게 내가 이미하고있는거야. 정말 악취가 나는 이유는'std :: unique_ptr'과 move semantics 같은 것들을 VS 2010 컴파일러에서만 사용할 수 있기를 원한다는 것입니다. –

+0

나는 동의한다, 나는 당신이 그것을 생각하지 않았던 경우에이 해결책을 언급했다. 행운을 빕니다. – KeatsPeeks

0

는 "아, 런타임의 동적 버전을 구축 할 수있을 필요가 없습니다 -. 정적 버전을"

정적 연결 만 필요하므로 this 트릭을 사용하여 EncodePointer 및 DecodePointer 구현을 제공 할 수 있습니다.

관련 문제