1

프로젝트 속성에서 대상 컴퓨터를 선택할 수 있습니다.visual studio 2008 대상 시스템 유형 목록

MachineX86 (/MACHINE:X86) 
MachineAM33 (/MACHINE:AM33) 
MachineARM (/MACHINE:ARM) 
MachineEBC (/MACHINE:EBC) 
MachineIA64 (/MACHINE:IA64) 
MachineM32R (/MACHINE:M32R) 
MachineMIPS (/MACHINE:MIPS) 
MachineMIPS16 (/MACHINE:MIPS16) 
MachineMIPSFPU (/MACHINE:MIPSFPU) 
MachineMIPSFPU16 (/MACHINE:MIPSFPU16) 
MachineMIPSR41XX (/MACHINE:MIPSR41XX) 
MachineSH3 (/MACHINE:SH3) 
MachineSH3DSP (/MACHINE:SH3DSP) 
MachineSH4 (/MACHINE:SH4) 
MachineSH5 (/MACHINE:SH5) 
MachineTHUMB (/MACHINE:THUMB) 
MachineX64 (/MACHINE:X64) 

나는 다음과 같은 질문이 : 큰 목록이 있습니다

  1. 그 글자의 의미는 무엇입니까?
  2. 필수 하드웨어입니까?
  3. 필수 소프트웨어 및/또는 운영 체제?
  4. x86 시스템에서 바이너리를 빌드 할 수 있습니까? 그렇다면 Visual Studio 2008 Express를 구성하는 방법은 무엇입니까?
  5. x86, x64, itanium에서 제대로 컴파일되면 코드를 변경해야합니까?
+0

예를 들어 'AM33'이 무엇인지 아는 사람이 있습니까? – BalticMusicFan

답변

2

이 설정은 소스 코드를 컴파일 할 CPU 아키텍처를 구성하기위한 것입니다. 선택한 아키텍처에 따라 다른 바이너리가 생성됩니다.

특정 CPU 아키텍처 용으로 컴파일 된 바이너리는 메모리에로드 된 후 CPU가 이해할 수있는 구조를 가지고 있습니다. 예를 들어 CPU가 실행될 명령과로드 할 데이터가 있습니다.

다른 아키텍처에 대해 동일한 소스 코드를 컴파일 할 수 있는지 여부는 수행중인 작업에 따라 다릅니다. 보통은 괜찮을 것이지만, 아키텍처 특유의 기능에 따라 직접 데이터를 조작하고 메모리를 직접 조작하여 상호 호환성을 깨는 것은 쉽습니다.

또한 코드를 작성하는 것이 쉽습니다 특정 OS에서 사용할 수있는 기능. 이것은이 설정과 직접적인 관련이 없지만 예를 들어 전화를 걸면 물론 가능합니다. PC에서만 사용 가능하고 ARM 용으로 컴파일하려고하는 Windows API는 작동하지 않습니다. 링크 할 함수를 정의하는 ARM 용으로 컴파일 된 라이브러리는 없습니다.

+0

질문 '4'에 대한 좋은 답변입니다. – BalticMusicFan