2012-02-10 2 views
15

내 응용 프로그램을 x64 용으로 빌드하고 싶습니다 (x64 dll을 사용하기 때문에). 구성 관리자에서 "능동 솔루션 플랫폼"을 "x64"로 설정했습니다 그러나 프로젝트 목록에서 플랫폼이 "x86"으로 설정되었습니다. 프로젝트 속성에서 "플랫폼 대상"도 "86"액티브 솔루션 플랫폼 VS 프로젝트 플랫폼 VS 플랫폼 대상

에 설정되어있는 I 대상 플랫폼을 설정하는 세 곳이 있습니다 완전히 혼동 :

  • 구성 관리자 : 활성 솔루션 플랫폼
  • 구성 관리자 : 프로젝트 플랫폼
  • 프로젝트 속성 : 플랫폼 대상

예를 들어 내가 64에 활성 솔루션 플랫폼을 설정할 수 있습니다, 프로젝트 괞 찮아 tform을 x86으로, Project target을 x64로 지정하십시오. 그게 무슨 뜻 이죠?

이 옵션의 각각의 의미와 함께 사용되는 방법을 설명 할 수 있습니까? x64로 컴파일하는 방법?

답변

18

액티브 솔루션 플랫폼을 사용하면 각 프로젝트에 대해 특정 구성 조합을 구성 할 수 있습니다. 프로젝트 플랫폼을 사용하면 프로젝트에 대한 특정 구성 설정을 지정할 수 있습니다. 이 두 가지 설정은 실제로 솔루션과 프로젝트를 빌드 할 플랫폼을 알려주지 않습니다. 실제 설정을 변경할 수있는 구성 집합 일뿐입니다.

기본적으로 x64 설정은 프로젝트가 x64 용으로 컴파일되도록 설정하지만 프로젝트 플랫폼 대상 속성을 통해 프로젝트 속성에서 변경할 수 있습니다 (기존 구성 집합의 대상을 변경하는 것은 매우 혼란 스럽지만 그 이름 이외의 것).

각 프로젝트의 플랫폼 대상 속성은 프로젝트 어셈블리를 컴파일 할 플랫폼을 지정하는 데 사용되는 설정입니다. AnyCPU 설정은 특정 플랫폼이 작동해야하는 구성 요소에 프로젝트가 종속되지 않는 경우에 권장되는 설정입니다.

은 anycpu를 설정 어셈블리 JIT 원인이 될 것이다 : ED

  • 86 32 개 비트 플랫폼
  • 64 64 비트 플랫폼

를 상기 정보 this question 참조.

예를 들어 액티브 솔루션 플랫폼을 x64, Project 플랫폼을 x86으로, 프로젝트 대상을 x64로 설정하면 해당 솔루션 구성을 선택할 때 프로젝트 어셈블리가 JIT에만 64 비트로 빌드되어 오류가 발생합니다. 32 비트 플랫폼에서 실행하려고했습니다. 당신은 64 비트 DLL로 만 자원 64 비트에 대한 종속성이있는 경우

64 설정

사용해야합니다. 그에 상응하여 32 비트 전용 자원에 종속성이있는 경우 x86 설정을 사용해야합니다.

구성 관리자 설정을 사용하면 x86/x64 용 또는 참조/디버그 용으로 다른 참조 된 어셈블리 (예 : in this question)를 사용하여 프로젝트 구축 방식을 변경할 수 있습니다.구성 집합은 빌드 구성 내에서 사용할 구성 요소 및 특정 구성에 대해 실행할 빌드 작성 태스크를 제어하는 ​​데 사용할 수있는 변수로 표시됩니다. 메모장을 사용하여 프로젝트 파일을 들여다 보면 어떻게 사용되는지 볼 수 있습니다.

+4

프로젝트 등록 정보 (x64 | x86 | 모든 CPU)에 스위치가 두 개인 것으로 보이는 경우 복잡함이 복잡해집니다. – SerG

관련 문제