C++ c++;11个程序在任何CPU上工作?
注:在否决投票或类似的事情之前,这是一个一般性的问题,需要更多地了解事情的进展情况 问题只是: 假设我编译了一个具有c++11功能的程序(在windows上使用VS2012),是否可以保证该程序将在较旧的处理器上运行?(如core 2 duo;大多数笔记本电脑都有此功能) 我目前正在使用VS2010,但找到了需要C++11功能的库。 所以我想将整个工作移植到VS2012,但我对如何工作的了解有限 纠正问题中的任何错误 编辑: 另外两个问题: 1-我可以将编译的c++11程序与旧的程序“混合”吗 类似于从旧版本(.exe)调用新版本(.dll)中的函数,因此我得到了2个文件: 1是用VS2010编译的,另1是用VS2012编译的,用DLL导出,它们可以这样工作吗C++ c++;11个程序在任何CPU上工作?,c++,visual-studio-2012,c++11,processor,C++,Visual Studio 2012,C++11,Processor,注:在否决投票或类似的事情之前,这是一个一般性的问题,需要更多地了解事情的进展情况 问题只是: 假设我编译了一个具有c++11功能的程序(在windows上使用VS2012),是否可以保证该程序将在较旧的处理器上运行?(如core 2 duo;大多数笔记本电脑都有此功能) 我目前正在使用VS2010,但找到了需要C++11功能的库。 所以我想将整个工作移植到VS2012,但我对如何工作的了解有限 纠正问题中的任何错误 编辑: 另外两个问题: 1-我可以将编译的c++11程序与旧的程序“混合”吗
2-建议windows使用比VS2012更好的环境是的,编译器需要额外的库来构建程序。但这不应影响在旧处理器上运行的能力。只有当您尝试在32位处理器上运行64位程序时,才会发生这种变化 移植到VS2012很简单,请在VS2012中打开解决方案,并将其另存为VS2012解决方案。一切都会好起来的
编辑:可能性是,如果你刚开始编程,你的所有程序默认都是为32位处理器编译的,除非你编写代码来更改它,所以你不必担心。您可以在64位处理器上运行32位程序,但反过来不行。如果你真的想升级,你可以制作一个可以在两个处理器上运行的程序;) 只要构建目标的体系结构相同(x86表示32位或amd64表示64位),您就不会有任何问题
当然,您需要为较旧的计算机提供正确的运行库来运行您的程序(对于当前的体系结构)。对于已编译的可执行文件,运行它的通常要求是:
- 阿比
- 平台
- 图书馆
- 环境
顺便说一句,Core 2 Duo没有那么老,实际的iCore版本也没有那么不同。这不是语言问题。这取决于编译器的目标是什么。在你直接开始之前,确保VS已经实现了你要移植的功能。VS比其他的更保守,或者可能更慢,并且还没有所有可用的东西。请参阅。非常感谢您的帮助,请检查编辑:)应避免问题2。你只会得到一些意见,虽然这是C++11特有的,但x86中当然有一些差异,你需要注意。例如,
cmov
支持。