- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
每个版本的Visual Studio 2008、2010和2012支持的最低目标处理器体系结构(用_M_IX86
预定义宏指示)是什么?
例如,MSVS 2012仅支持Pentium Pro和更高版本。
最佳答案
为此的经典开关是/G
。对于不同版本的编译器,可用选项有所不同(新版本会删除旧选项,尽管出于兼容性原因会继续接受它们)。这是您得到的:
已为386处理器优化的/G3
内置代码(_M_IX86
设置为300)
486处理器的/G4
(_M_IX86
设置为400)
为奔腾优化的/G5
内置代码(_M_IX86
设置为500)
为奔腾Pro,II和III优化的/G6
内置代码(_M_IX86
设置为600)/G7
构建的代码已针对Pentium 4或AMD Athlon进行了优化(_M_IX86
设置为700)/GB
指定了“混合”模式或发布该版本编译器时合理的最低公分母。如果未指定其他选项,则这是默认选项。
当然,要明确指出,设置此选项以针对较新的处理器体系结构进行优化并不会阻止您的代码在较旧的处理器体系结构上运行。它只是没有针对该架构进行优化,并且可能会运行得更慢。
但是,如果在a current version of the documentation中查找此编译器选项,则不会提及任何内容。您所看到的只是关于Itanium处理器(我们将放在一边)。这是因为the compiler shipping with VC++ 2005 dropped the /G3
–/G7
compiler options altogether:
[The] /G3
,/G4
,/G5
,/G6
,/G7
和/GB
编译器选项已被删除。编译器现在使用“混合模型”,该模型尝试为所有体系结构创建最佳输出文件。
因此,尽管我们中的许多人都从VC ++ 6牢记这一点,但是即使在VC ++ 2008之前,该代码生成设置还是有历史的好奇心。因此,我不确定您会从哪里得到VS 2012仅支持Pentium Pro的印象。我在官方文档的任何地方或在线其他地方都找不到提到的内容。编译器版本2012的限制因素不是处理器体系结构,而是操作系统版本。如果您已经修补了编译器,库和所有其他附件,以支持针对Windows XP,那么您将能够在原始的Pentium-233上运行应用程序,并在其上自发地尝试了Windows XP。_M_IX86
宏的用途实际上只是一个指标,表明您所针对的是Intel IA-32处理器家族(通常称为旧的32位x86),与其他受支持的目标体系结构(如< cc>用于64位x86。您现在应该只将其视为已定义/未定义的值。
是的,_M_AMD64
的旧值表仍显示在the latest version of the preprocessor documentation中,但已经完全过时了。您会注意到那里也出现了其他过时的符号,例如_M_IX86
:PowerPC编译器随附的MSVC ++的最新版本是什么? 4.2?
但这只是故事的一部分。还有其他一些编译器选项可以控制有关目标体系结构的代码生成。
例如,_M_PPC
开关。在the latest version of the documentation中,您可以使用以下选项:/arch
本质上设置最低的公分母,使用x87表示浮点数/arch:IA32
开启SSE指令/arch:SSE
开启SSE2指令(x86的默认设置)/arch:SSE2
启用英特尔高级矢量扩展/arch:AVX
启用英特尔高级矢量扩展2
如果您阅读“备注”部分,您还将看到这些选项不仅意味着指定的指令集,还意味着更多。例如,由于所有支持SSE指令的处理器也都支持/arch:AVX2
指令,所以当指定CMOV
或更高版本时,将生成CMOV
指令。 /arch:SSE
指令与SSE无关。实际上,SSE是在Pentium III中引入的,而CMOV
是在Pentium Pro中引入的。但是,可以保证任何支持SSE的体系结构都可以支持它。
其他相关选项由CMOV
开关控制。这是从VC ++ 2008开始的新功能,大概是旧/favor
– /G3
选项的替代品。正如the documentation所说:/G7
是默认设置,并且生成没有独特优化的代码/favor:blend
生成特定于英特尔x86-64实现的代码/favor:INTEL64
生成特定于AMD x86-64实现的代码/favor:AMD64
生成特定于英特尔Atom处理器的代码
关于visual-studio - 各种版本的Visual Studio的最低 objective-c PU体系结构是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23259531/
如何根据tomcat日志计算出PV,ip,PU? 我已经将 tomcat 日志导出到 db。 可以找到有关数据库结构的信息here . 对于我可以使用的ip: select count(distinc
我尝试将 Maven 生成的 WAR 文件安装到 Weblogic 服务器,但在尝试部署时从 weblogic 收到以下错误消息: Duplicate persistence units with n
我有以下 PostGreSQL Locations 表: -------------------- | ID | Name | -------------------- | 1 | K
我使用 EclipseLink 作为我的 JPA 提供程序。我的应用程序工作正常,但最近在部署应用程序时出现错误,并且它不再工作。我是 JPA 新手,尽管我已阅读日志,但我无法理解发生了什么。它与 E
让我们举一个基本的例子,假设我们有一个实体类 @Entity public class User { } 以及一个用于处理数据的 DAO: public interface UserDao {
当使用 ColdFusion Illudium 代码生成器从 postgresql 生成模型时, bool 值在 cfqueryparam 中被转换为 varchar,而 varchar 被转换为 c
我目前正在尝试构建一个应该可以在各种机器上运行的代码,从手持式口袋和传感器到数据中心的大型服务器。 这些架构之间的(许多)差异之一是对齐内存访问的要求。 “标准”x86 CPU 不需要对齐内存访问,但
我正在使用 cmake 为 VxWorks 进行交叉编译。当我第一次运行 cmake 时,我必须提供有关编译器、目标操作系统等的信息。 在交叉编译对话框中,我设置了三个目标系统设置: 操作系统 版本
这个问题在这里已经有了答案: 9年前关闭。 Possible Duplicate: Detecting CPU architecture compile-time 是否有 GCC 设置的定义来说明 G
在 VS 2013 中,在项目属性中的编译中,我看到两个似乎与同一事物相关的配置(下方的打印屏幕)。平台和 objective-c PU。 有什么不同?有没有? 最佳答案 默认情况下,平台字符串与 o
我正在阅读 kubernetes hpa example 的示例.在这个例子中,它们运行:kubectl run php-apache --image=k8s.gcr.io/hpa-example -
在调试 HM 16.2 的解码时,我看到 CU 看起来像是被分割为 PU。每个PU都有相同的MV。在一个 CU 中允许不同的 MV 是我(目前)知道将 CU 拆分为 PU 的唯一原因。 我想知道我是否
假设我们有一个面向任何 CPU 的应用程序,但该应用程序使用具有两种风格的第三方程序集,32 位和 64 位。必须使用其中的哪一个? 如果“Any”选项同时运行 32 位和 64 位应用程序,我如何才
我希望在 Visual Studio 2010 中将 objective-c PU 设置从“任何 CPU”更改为“x86”。 我在另一个网站上读到我需要执行以下操作: 转到您程序的启动项目。 打开属性
我正尝试按照 Chris Simmonds 在“掌握嵌入式 Linux 编程”中的说明为 beagle bone black 构建 u-boot。我已经构建了交叉工具链,现在正尝试使用该工具链构建 D
我正在尝试构建一个网站应用程序并将 objective-c PU 指定为 x86 而不是任何 CPU。在“事件解决方案平台:”下拉列表下,我在 Configuration Manager 中的唯一选择
我是一名优秀的程序员,十分优秀!