注意:在否决投票或类似的事情之前,这是一个一般性的问题,以了解更多的事情是如何进行的
问题很简单:假设我编译了一个具有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更好的环境
发布于 2013-05-12 09:46:14
是的,编译器需要额外的库来构建程序。但这不应该影响在较老的处理器上运行的能力。只有当您尝试在32位处理器上运行64位程序时,这种情况才会发生变化。
移植到VS2012很简单,在VS2012中打开解决方案,然后将其另存为vs2012解决方案。一切都会好起来的。
编辑:如果你是编程新手,除非你编写代码来改变这一点,否则你所有的程序在默认情况下都是为32位处理器编译的,所以你不必担心。你可以在64位处理器上运行32位程序,反之亦然。如果你真的想升级它,你可以编写一个可以在两个处理器上运行的程序;)
发布于 2013-05-12 09:47:07
只要为其构建目标的架构是相同的( 32位的x86或64位的amd64 ),就不会有任何问题。
当然,您需要为旧机器提供正确的运行时库来运行您的程序(对于当前的体系结构)。
发布于 2013-05-12 09:52:45
给定一个已编译的可执行文件,运行它的通常要求是:
由于Windows是一个商业产品,根据您所做的工作,您可以添加另一个因素
这意味着有时软件公司故意破坏与其他产品的兼容性,以销售更多的东西。
一般来说,VS不是很好,当然不是我用过的最好的编译器,基本上从GCC到MinGW,任何东西都可以很容易地取代VS,但VS是Windows的官方编译器和环境,所以这是你大部分时间必须处理的。
如果你满足了列出的要求,你就可以开始工作了。
顺便说一句,Core2 Duo并没有那么老,而且实际的iCore代也没有太大的不同。
https://stackoverflow.com/questions/16503400
复制相似问题