在不同机器上使用二进制文件时共享对象错误
shared object error when using binary on different machine
如何避免这种情况?我有一个非常简单的c++程序编译在一个ubuntu盒子上。当我把它移到red hat并尝试执行它时,我得到了一个错误,类似于:
cannot find shared object stdlibc++5.so
商业软件如何解决这个问题,用户机器上安装的stdlib会有很大的不同。是否有一些标志,我需要使用当我编译?
我想你需要重新编译一遍,因为:
- 操作系统不同[Ubuntu和Red Hat]
- 库的位置可能不同。也有机会(虽然非常) 说明stdc++库不存在。
- 在使用C/c++等编译语言的商业软件中,应用程序是部署在同一个操作系统上(包括开发和生产…据我所知),通常,库的位置也是一致的
因此,请检查您是否能够编译您的c++代码(可能是hello world)并再次编译您的代码
这可能有很多原因;就你所知,那个目标机器可能没有安装g++及其库。唯一的真正的解决方案是静态链接标准c++库,使用-static-libstdc++
选项。
相关文章:
- 正在读取二进制文件(is_open)
- 在C++中将类(带有Vector成员)保存为二进制文件
- 如何从二进制文件中读取字符串
- 保存/加载大量短数组到二进制文件
- 从二进制文件中读取整数数组
- Android 在编译二进制文件时重建静态库
- 在 C++ 中将双精度变量写入二进制文件
- clang 的 libFuzzer 可以在同一二进制文件中测试超过 1 个 API 吗?
- C++:实际上不是从二进制文件中读取
- 模板类静态在最终二进制文件中跨共享库以不同方式实例化是否一致
- 如何将所有依赖项和共享库编译为一个二进制文件
- 使用静态依赖性为共享二进制文件编译语法需要更加清晰
- 如何在二进制文件中包含共享库依赖项(不使用.deb或.rpm)和/或针对PulseAudio的静态链接
- 使用共享库在 Ubuntu 上部署 Qt 应用程序二进制文件
- CMake:从外部项目链接共享C++对象会生成具有相对路径的二进制文件,而不是绝对路径
- 检查共享库是否与二进制文件兼容
- 我可以提供我的程序的linux二进制文件与我的系统的共享库吗?
- 在不同机器上使用二进制文件时共享对象错误
- CMake从Ubuntu为RedHat EL6构建了一个独立的二进制文件,其中包含依赖的共享库
- 在linux中使用共享库执行二进制文件