我遇到了问题,我正在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
谢谢!
答案 0 :(得分:4)
您的应用正在使用glibc-2.7库,而应用无法在其他计算机上找到它。它可能有这个库的旧版本。您有以下选择:
如何静态链接到一个库:
gcc main.c mylibrary.a -o main
请注意,默认情况下,大多数发行版都不安装静态库。
答案 1 :(得分:1)
有三种选择:
-static
编译给编译器,该编译器将包含二进制文件中的相关库[可能会给你一两个警告“这可能无法正常工作”] 我倾向于在大多数时间使用选项1,但在不同的点上使用了所有三个。