我可以在不支持它的平台上运行使用 C++11 编译的二进制文件吗?

Can I run binary compiled with C++11 on the platform which doesn't support it?

本文关键字:编译 C++11 二进制文件 运行 不支持 平台 我可以      更新时间:2023-10-16

我有两个类似的平台(比如linux) A和b。A支持c++ 03和c++ 11;但是B只支持c++ 03编译器。

我在A平台上编译代码(使用c++ 03),并且能够在B平台上运行其二进制代码,没有任何问题。c++ 11也是如此吗?(它可能在我的平台上工作,但想知道更广泛的意义)。

换句话说,c++ 11是仅限于编译还是它也是一个框架增强(增加了对新库和线程的支持)?

一般来说,可以,但是目标机器上应该有c++ 0X运行库,或者您应该将运行库静态地链接到可执行文件中。

可以。

一旦你有了二进制文件或可执行文件,它们应该可以在任何平台上工作。

由于c++,无论什么版本,都可以编译成汇编(如果动态链接,还可以调用os - api),因此只要平台支持指令集(并且存在适当的dll),就可以这样做。

对比linux特有的答案:

Windows没有"支持c++平台"的概念。它反过来工作:c++编译器可以针对不同的Windows版本。VS2010的c++运行时支持XP SP2及更高版本。