我发现我可以在项目属性下选择目标机器。有一个很大的列表:
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)
我有以下问题:
- 这个首字母缩略词是什么意思?
- 需要硬件吗?
- 所需的软件和/或操作系统?
- 可以在 x86 系统上构建二进制文件吗?如果是,如何配置 Visual Studio 2008 Express?
- 如果代码在 x86、x64、itanium 上编译良好,是否必须对代码进行任何更改?
最佳答案
此设置用于配置编译源代码的 CPU 架构。根据您选择的体系结构,您将获得不同的二进制文件。
为特定 CPU 架构编译的二进制文件具有一种结构,加载到内存后,CPU 可以理解该结构。例如,有供 CPU 执行的命令和要加载的数据。
是否可以为不同的体系结构编译相同的源代码取决于您在做什么。通常你会没事的,但很容易通过做数据大小敏感的事情、直接操纵内存、取决于特定于体系结构的特性等来破坏交叉兼容性。
此外,编写依赖于特定操作系统中可用功能的代码也很容易。这与此设置没有直接关系,但当然如果你调用一个仅在 PC 上可用并尝试为 ARM 编译的 Windows API,它不会工作 - 不会有任何为 ARM 编译的库定义要链接的函数。
关于c - visual studio 2008 目标机器类型列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20506535/