首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >c++11程序可以在任何中央处理器上运行吗?

c++11程序可以在任何中央处理器上运行吗?
EN

Stack Overflow用户
提问于 2013-05-12 09:43:18
回答 3查看 203关注 0票数 0

注意:在否决投票或类似的事情之前,这是一个一般性的问题,以了解更多的事情是如何进行的

问题很简单:假设我编译了一个具有c++11特性的程序(在windows上使用VS2012 ),是否可以保证这个程序可以在较老的处理器上运行?(就像核心2 duo;因为大多数笔记本电脑都有这个特性)。

我目前正在使用VS2010,但是发现了需要C++11特性的库。因此,我想将整个工作移植到VS2012上,但我对它的工作原理知之甚少

纠正问题中的任何错误

编辑:另外两个问题:

1 -can我将编译的c++11程序与旧程序“混合”在一起?

比如从旧版本(.exe)中调用新版本(.dll)中的函数,所以我得到了两个文件:

1个是用VS2010编译的,另1个是用VS2012编译的,用DLL导出可以这样工作吗?

2比VS2012 -suggest windows更好的环境

EN

回答 3

Stack Overflow用户

发布于 2013-05-12 09:46:14

是的,编译器需要额外的库来构建程序。但这不应该影响在较老的处理器上运行的能力。只有当您尝试在32位处理器上运行64位程序时,这种情况才会发生变化。

移植到VS2012很简单,在VS2012中打开解决方案,然后将其另存为vs2012解决方案。一切都会好起来的。

编辑:如果你是编程新手,除非你编写代码来改变这一点,否则你所有的程序在默认情况下都是为32位处理器编译的,所以你不必担心。你可以在64位处理器上运行32位程序,反之亦然。如果你真的想升级它,你可以编写一个可以在两个处理器上运行的程序;)

票数 1
EN

Stack Overflow用户

发布于 2013-05-12 09:47:07

只要为其构建目标的架构是相同的( 32位的x86或64位的amd64 ),就不会有任何问题。

当然,您需要为旧机器提供正确的运行时库来运行您的程序(对于当前的体系结构)。

票数 1
EN

Stack Overflow用户

发布于 2013-05-12 09:52:45

给定一个已编译的可执行文件,运行它的通常要求是:

  • ABI
  • platform
  • libraries

由于Windows是一个商业产品,根据您所做的工作,您可以添加另一个因素

  • environment

这意味着有时软件公司故意破坏与其他产品的兼容性,以销售更多的东西。

一般来说,VS不是很好,当然不是我用过的最好的编译器,基本上从GCC到MinGW,任何东西都可以很容易地取代VS,但VS是Windows的官方编译器和环境,所以这是你大部分时间必须处理的。

如果你满足了列出的要求,你就可以开始工作了。

顺便说一句,Core2 Duo并没有那么老,而且实际的iCore代也没有太大的不同。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16503400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档