Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ c++;11个程序在任何CPU上工作?_C++_Visual Studio 2012_C++11_Processor - Fatal编程技术网

C++ c++;11个程序在任何CPU上工作?

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程序与旧的程序“混合”吗

注:在否决投票或类似的事情之前,这是一个一般性的问题,需要更多地了解事情的进展情况

问题只是: 假设我编译了一个具有c++11功能的程序(在windows上使用VS2012),是否可以保证该程序将在较旧的处理器上运行?(如core 2 duo;大多数笔记本电脑都有此功能)

我目前正在使用VS2010,但找到了需要C++11功能的库。 所以我想将整个工作移植到VS2012,但我对如何工作的了解有限

纠正问题中的任何错误

编辑: 另外两个问题:

1-我可以将编译的c++11程序与旧的程序“混合”吗

类似于从旧版本(.exe)调用新版本(.dll)中的函数,因此我得到了2个文件:

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


2-建议windows使用比VS2012更好的环境是的,编译器需要额外的库来构建程序。但这不应影响在旧处理器上运行的能力。只有当您尝试在32位处理器上运行64位程序时,才会发生这种变化

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


编辑:可能性是,如果你刚开始编程,你的所有程序默认都是为32位处理器编译的,除非你编写代码来更改它,所以你不必担心。您可以在64位处理器上运行32位程序,但反过来不行。如果你真的想升级,你可以制作一个可以在两个处理器上运行的程序;)

只要构建目标的体系结构相同(x86表示32位或amd64表示64位),您就不会有任何问题


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

对于已编译的可执行文件,运行它的通常要求是:

  • 阿比
  • 平台
  • 图书馆
由于Windows是一种商业产品,这取决于你在做什么,你可以添加另一个因素

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

一般来说,VS不是很好,当然它不是我使用过的最好的编译器,基本上从GCC到Clang到MinGW都可以轻松取代VS,但是VS是Windows的官方编译器和环境,所以这是大多数时候你必须处理的问题

如果你满足了列出的要求,你就可以去了


顺便说一句,Core 2 Duo没有那么老,实际的iCore版本也没有那么不同。

这不是语言问题。这取决于编译器的目标是什么。在你直接开始之前,确保VS已经实现了你要移植的功能。VS比其他的更保守,或者可能更慢,并且还没有所有可用的东西。请参阅。非常感谢您的帮助,请检查编辑:)应避免问题2。你只会得到一些意见,虽然这是C++11特有的,但x86中当然有一些差异,你需要注意。例如,
cmov
支持。