使用 g++ 的 Glibc 问题
Glibc issue using g++
我有一个问题,我正在Linux机器中编译我的C++应用程序。然后我将可执行文件移动到其他机器,但我有一个错误:
./server: /lib64/libc.so.6: version `GLIBC_2.7' not found (required by ./server)
我该如何解决它?无需在发生此错误的第二台计算机上重新编译(这是我的客户端计算机)
编译命令:
g++ -o server test.cpp server.cpp ... -lboost_system -lboost_thread -std=c++0x
谢谢!
您的应用正在使用 glibc-2.7 库,并且应用在其他计算机上找不到它。 它可能有这个库的旧版本。您有以下选择:
- 在目标主机上升级此库
- 将您的应用程序链接到旧库版本
- 使用静态链接
- 将库与应用程序一起交付
如何静态链接到一个库:
gcc main.c mylibrary.a -o main
请注意,默认情况下,大多数发行版不安装静态库。
有三种选择:
- 在原始机器上编译,编译器
-static
,编译器将包含二进制文件中的相关库[并可能给您一两个关于"这可能无法正常工作"的警告] - 在新计算机上编译代码。
- 在目标计算机上安装正确版本的库。
我大部分时间都倾向于使用选项 1,但在不同时间点使用了所有三个选项。
相关文章:
- 警告处理为错误这里有什么问题
- 最小硬币更换问题(自上而下方法)
- 为"adjacent"变量赋值时出现问题
- 我的神经网络不起作用 [XOR 问题]
- 在Ubuntu 16.04上安装Cilk时出现问题
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 编译包含字符串的代码时遇到问题
- Project Euler问题4的错误解决方案
- 问题:什么是QAbstractItemView::NoEditTriggers的反面
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 静态数据成员的问题-修复链接错误会导致编译器错误
- C++ 雷神库 - 使用资源加载器类时出现问题(不命名类型)
- 一个关于在C++中重载布尔运算符的问题
- 首要问题的答案让值班员搞错了
- setlocale的C++土耳其字符串问题
- 如何重构类层次结构以避免菱形问题
- 'make check' GLIBC 运行时的链接问题
- ***glibc检测到***和动态分配问题-C++
- 使用 g++ 的 Glibc 问题