在机器1上编译的C++代码不能在机器2上运行,因为“没有找到GLYBCXX3.3.15”

在机器1上编译的C++代码不能在机器2上运行,因为“没有找到GLYBCXX3.3.15”,c++,compilation,C++,Compilation,代码在机器1上用g++编译 有没有办法在机器1上编译,使它在机器2上运行?无需触摸/更新机器2上的任何内容?我没有访问计算机2的权限…这意味着找不到libstdc++库 检查机器2上的动态依赖关系,并确定相关库的路径: ldd myprogram 任何缺少的库都将显示为未找到。您需要安装缺少的软件包。您可以使用与机器2相同的操作系统版本运行类似于with VirtualBox的虚拟机,并使用该虚拟机编译所有内容,以确保所有库等内容都兼容。我认为您希望在GCC 4.5之后静态链接libstdc+

代码在机器1上用g++编译

有没有办法在机器1上编译,使它在机器2上运行?无需触摸/更新机器2上的任何内容?我没有访问计算机2的权限…

这意味着找不到libstdc++库

检查机器2上的动态依赖关系,并确定相关库的路径:

ldd myprogram

任何缺少的库都将显示为未找到。您需要安装缺少的软件包。

您可以使用与机器2相同的操作系统版本运行类似于with VirtualBox的虚拟机,并使用该虚拟机编译所有内容,以确保所有库等内容都兼容。

我认为您希望在GCC 4.5之后静态链接libstdc++ 你可以这样做

    g++ -static-libstdc++ compiler  -o myprogram myprogram.cpp

然后您可以将其分发到机器2。

您的意思是,就像Windows或Office在CD上的传送方式一样?在微软编译,神奇地在你的家用机器上运行?不,我是问是否每个人都应该是GLIBCXX_3.4.15兼容的,如果不是的话,我有没有办法让我的程序更具可移植性。你可以静态链接C库,但这相当昂贵。目前没有那么多不同的主要版本,因此您可以提供一小部分针对不同C库编译的不同二进制文件。这是否意味着它将在我的程序中包含libstdc++版本?无论如何,我会研究静态链接的东西,谢谢。