0
我需要在我的机器上编译C++程序并在另一台机器上远程运行它。我最新的GLIBCXX版本是3.4.21。我想运行的机器只能达到GLIBCXX_3.4.2。所以当我尝试运行时,我得到这个错误。在计算机集群上本地安装GLIBCXX_3.4.21
./test_x: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./test_x)
我没有权限在远程计算机上更新到GCLIBCXX_3.4.21,所以我想知道是否有可能在本地安装GLIBCXX_3.4.21因为我没有在集群中的root权限?
不,这是不可能的,因为libstdC++不可能是唯一的依赖项。用较新版本的gcc和libstdC++编译的程序没有很好的机会与较旧的libstdC++一起运行。更不用说其他的操作系统也可能拥有较老的图书馆,同样的问题;即使链接,它可能会因为这个原因而崩溃。忘掉整个事情。你在浪费你的时间。 –
然后我可以降级我的版本并尝试编译这种方式吗? –
您必须降级不仅仅是'libstdC++',而且还要降级所有其他依赖项。此时,您最好使用较旧的操作系统安装VM,并将您的codez构建在与目标部署平台相同的平台上。这就是虚拟机的用途。 –