【发布时间】:2013-05-14 12:31:34
【问题描述】:
我正在开发一个项目,该项目在 Fedora 18 机器上使用 C++11 标准中的类,并希望将其部署在 Centos 6.4 服务器上。
我能够解决除 libc 和 libc++ 版本之外的所有加载程序错误,它们分别是 GLIBC_2.11、GLIBCXX_3.4.15 和我的 Fedora 机器 GLIBC_2.14 和至少 GLIBCXX_3.4.17。
是否可以告诉编译器编译/链接服务器版本或更旧的兼容版本的库?
当我运行 ldd 可执行文件 我得到 p>
./executable: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./executable)
./executable: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by ./executable)
提前致谢!
【问题讨论】:
-
This question 已经处理了 libc,将其扩展到 libstdc++ 应该不会太难。
-
我将所需的共享对象从我的开发者机器复制到了一个 libs 文件夹中,并添加了 -Xlinker -rpath=libs/ -Xlinker -Ilibs/ld.so Makefile 中的 >CXXFLAGS 和 LFLAGS。然后我将此文件夹和可执行文件复制到服务器,我收到有关 Qt 的其他链接器错误。至少有一些进展:-)
-
@syam:谢谢!我能够让程序运行 :-) 只需将所有需要的共享库复制到此 lib 文件夹并将所有内容部署到服务器。
标签: c++ c++11 fedora centos6 cross-compiling