c - visual studio 2008 目标机器类型列表

标签 c visual-studio visual-studio-2008 configuration subsystem

我发现我可以在项目属性下选择目标机器。有一个很大的列表:

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 上编译良好,是否必须对代码进行任何更改?

最佳答案

此设置用于配置编译源代码的 CPU 架构。根据您选择的体系结构,您将获得不同的二进制文件。

为特定 CPU 架构编译的二进制文件具有一种结构,加载到内存后,CPU 可以理解该结构。例如,有供 CPU 执行的命令和要加载的数据。

是否可以为不同的体系结构编译相同的源代码取决于您在做什么。通常你会没事的,但很容易通过做数据大小敏感的事情、直接操纵内存、取决于特定于体系结构的特性等来破坏交叉兼容性。

此外,编写依赖于特定操作系统中可用功能的代码也很容易。这与此设置没有直接关系,但当然如果你调用一个仅在 PC 上可用并尝试为 ARM 编译的 Windows API,它不会工作 - 不会有任何为 ARM 编译的库定义要链接的函数。

关于c - visual studio 2008 目标机器类型列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20506535/

相关文章:

c - 是否可以在 mac(64 位)上编译 svdlibc?

c - 不支持获取 ai_socktype

c# - 运行 Visual Studio 单元测试与运行 ReSharper 单元测试,有什么区别?

c# - 从 System.Diagnostics.Process 调用 dism.exe 失败

c# - File.exists 显示文件,即使它不存在

c# - 如何创建这样的任务面板?

c - getcwd()在什么情况下返回NULL?

使用宏转换结构中整数字段的字节顺序

windows - 如何在 Windows 上为 CMake 自定义命令设置运行时路径

c# - 来自 Visual Studio 2017 的 Azure 函数调试连接出现 'N/A' 监听器连接错误