在不同机器上使用二进制文件时共享对象错误

shared object error when using binary on different machine

本文关键字:二进制文件 共享 对象 错误 机器      更新时间:2023-10-16

如何避免这种情况?我有一个非常简单的c++程序编译在一个ubuntu盒子上。当我把它移到red hat并尝试执行它时,我得到了一个错误,类似于:

cannot find shared object stdlibc++5.so

商业软件如何解决这个问题,用户机器上安装的stdlib会有很大的不同。是否有一些标志,我需要使用当我编译?

我想你需要重新编译一遍,因为:

  1. 操作系统不同[Ubuntu和Red Hat]
  2. 库的位置可能不同。也有机会(虽然非常)
  3. 说明stdc++库不存在。
  4. 在使用C/c++等编译语言的商业软件中,应用程序是部署在同一个操作系统上(包括开发和生产…据我所知),通常,库的位置也是一致的

因此,请检查您是否能够编译您的c++代码(可能是hello world)并再次编译您的代码

这可能有很多原因;就你所知,那个目标机器可能没有安装g++及其库。唯一的真正的解决方案是静态链接标准c++库,使用-static-libstdc++选项。