Aar*_*ron 195 .net c# compilation cpu-architecture visual-studio

我不清楚编译器在需要时如何自动知道编译为64位.它如何知道什么时候可以自信地针对32位?
我很好奇编译器在编译时如何知道要定位的架构.它是否分析代码并根据它发现的内容做出决定?
Lex*_* Li 213
微软有一个博客文章What AnyCPU真正意味着.NET 4.5和Visual Studio 11:
在.NET 4.5和Visual Studio 11中,奶酪已被移动.大多数.NET项目的默认设置是AnyCPU,但现在AnyCPU有多个含义.还有一个额外的子类型AnyCPU,"任何CPU 32位首选",这是新的默认值(总体而言,/ platform C#编译器交换机现在有五个选项:x86,Itanium,x64,anycpu和anycpu32bitpreferred ).当使用AnyCPU的"Prefer 32-Bit"风格时,语义如下:
- 如果进程在32位Windows系统上运行,则它将以32位进程运行.IL被编译为x86机器代码.
- 如果进程在64位Windows系统上运行,则它将以32位进程运行.IL被编译为x86机器代码.
- 如果进程在ARM Windows系统上运行,则它将以32位进程运行.IL编译为ARM机器代码.
然后,"任何CPU 32位首选"和"x86"之间的区别仅在于:编译为x86的.NET应用程序无法在ARM Windows系统上运行,而是"任何CPU 32位首选"应用程序将成功运行.
You*_*oub 13
这是一个简单的答案:
注意: AnyCPU-32bitPreferred 仅在 .Net 4.5 及更高版本中可用。
| 归档时间: |
|
| 查看次数: |
63543 次 |
| 最近记录: |