如何在具有旧版gcc的系统上动态链接到libc.so.6,libstdc ++。so.6的本地副本

用户名

我的代码是用c ++ 2011编写的,并且是用g ++ 4.8编译的。但是,我的系统管理员不会从gcc / g ++ 4.1升级计算群集。我收到以下错误:

/lib64/libc.so.6:找不到版本“ GLIBC_2.14”(./ ManRegOptDes必需)/usr/lib64/libstdc++.so.6:找不到
版本“ GLIBCXX_3.4.17”(../ ManRegOptDes必需)
/usr/lib64/libstdc++.so.6:找不到
版本“ GLIBCXX_3.4.11”(./ ManRegOptDes必需)/usr/lib64/libstdc++.so.6:找不到版本“ GLIBCXX_3.4.9”(../必需ManRegOptDes)/usr/lib64/libstdc++.so.6 
:找不到版本'GLIBCXX_3.4.13'(./ManRegOptDes必需)/ usr / lib64 / libstdc ++。so.6 
:找不到版本'GLIBCXX_3.4.19'(由./ManRegOptDes)/usr/lib64/libstdc++.so.6 
:找不到版本'CXXABI_1.3.3'(/lib/intel/tbb/lib/intel64/gcc4.4/libtbb.so.2要求)

是否可以将libc.so.6,libstdc ++。so.6的gcc / g ++ 4.8版本复制到群集上的用户目录中,以便我的程序动态链接到它们?如果是这样,我要设置哪个环境变量,以便我的可执行文件可以动态链接到它们?

谢谢。

2785528

可以复制这些文件吗?

是的。对象库是普通文件,就像其他任何文件一样。当然,当sysadmin使它们可用时,您最终将希望挂接到正式库中。

对象库有两种格式:.a(存档)和.so(共享对象)。如果将它们都复制到同一个人目录,则默认情况下,gcc链接程序将选择.so而不是.a。

如果是这样,我要设置哪个环境变量[sic]

我认为您不必担心标准的LIBRARY_PATH或PATH条目,直到您需要传递它,或者直到lib64成为“正式”可用为止。与执行以下操作相比,解开临时路径修改等是否更难?

将所需的库复制到自己的目录中,也许

      /home/uname/my_lib64

变得

  • ... / my_lib64 / libc.so.6
  • ... / my_lib64 / libstdc ++。so.6

添加

  • -L / home / uname / my_lib64

到您的“最终”编译命令,以使gcc-linker知道可以在哪里查找库。

并添加

  • -lc
  • -lstdc ++

到'final'编译命令,以让gcc编译器知道应找到的库名称,并搜索未解析的符号。

抱歉,我无法在我的机器上对此进行测试。如果遇到问题,我似乎记得使用了一个相对路径名(而不是绝对路径)到您的库所在的目录。当我看时,这似乎是我当时所做的,但这可能是使相对路径有用的其他一些目标。

我也这样做了,您可能想要向目标文件中添加一个目标,以确保链接到的.a或.so是最新的#w包含代码中的标头库。我的makefile只是调用了一个cp来将最新的库放入my_lib64中。当他们与我的目标合作时,协调库和标头更新是我希望系统管理员执行的操作之一。

最后...确保#include的头文件正确。要进行检查,请在编译中添加-H,并仔细阅读每个版本中触发读取的文件名和路径。

我想这样做会比较麻烦,但是您可以使用与sys-admin专制类似的解决方法,并将最新版本的标头复制到您自己的目录中。但是现在您的工作要比我想做的要辛苦一些。通常,当您安装较新版本的编译器时,它附带有相应的头文件和库。

祝你好运。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在具有旧版gcc的系统上动态链接到libc.so.6,libstdc ++。so.6的本地副本

来自分类Dev

如何指定要使用的libstdc ++。so.6

来自分类Dev

未在文件libstdc ++。so.6中定义GLIBCXX_3.4.21,具有链接时间参考

来自分类Dev

mv:无法打开共享库文件“ libstdc ++。so.6”:符号链接嵌套太大

来自分类Dev

libstdc ++。so.6:打开失败:没有这样的文件或目录

来自分类Dev

mongod libstdc++.so.6 没有这样的文件或目录

来自分类Dev

ldd可执行文件如何找到/usr/lib64/libstdc++.so.6?

来自分类Dev

意外删除了libstdc ++。so.6 Ubuntu

来自分类Dev

Linaro工具链libstdc ++。so.6丢失

来自分类Dev

/libstdc++.so.6:找不到版本安装

来自分类Dev

Linux上的matlab无法绘制任何内容(无法加载libstdc ++。so.6:找不到版本“ CXXABI_1.3.8”)

来自分类Dev

apt:重定位错误:libstdc ++。so.6文件中未定义版本GLIBCXX_3.4.21,具有链接时间参考

来自分类Dev

Android SDK-Aapt错误:libstdc ++。so.6无法打开共享库文件

来自分类Dev

随应用程序一起交付libstdc ++。so.6

来自分类Dev

Genymotion:/usr/lib/x86_64-linux-gnu/libstdc++.so.6:找不到

来自分类Dev

程序在错误的位置寻找libstdc ++。so.6,并且似乎忽略了LD_LIBRARY_PATH

来自分类Dev

cmake:/usr/lib/libstdc++.so.6:找不到版本'GLIBCXX_3.4.20'(cmake要求)

来自分类Dev

ADT-libstdc ++。so.6:无法打开共享对象文件

来自分类Dev

找不到/lib64/libstdc++.so.6 CentOS 7.3

来自分类Dev

CentOS 7:libstdc++.so.6:未找到版本“CXXABI_1.3.9”

来自分类Dev

如何正确捆绑libstdc ++。so。*?

来自分类Dev

从源代码:libstdc ++。so.6构建gcc 4.8.3时出错:找不到版本“ CXXABI_1.3.8”(/ usr / lib / x86_64-linux-gnu / libicuuc.so.55要求)

来自分类Dev

nodejs食谱:节点:/usr/lib64/libstdc++.so.6:找不到版本'GLIBCXX_3.4.15'(由节点要求)

来自分类Dev

找不到两个libstdc ++。so.6文件和版本'GLIBCXX_3.4.21'错误

来自分类Dev

缺少libcryptopp.so.6

来自分类Dev

(pam_ldap.so)/lib/libc.so.6:找不到版本“ GLIBC_2.28”

来自分类Dev

ld.so.cache和libc.so.6是否为每个调用映射了内存?

来自分类Dev

12.04上不同版本的libstdc ++ 6

来自分类Dev

12.04上不同版本的libstdc ++ 6

Related 相关文章

  1. 1

    如何在具有旧版gcc的系统上动态链接到libc.so.6,libstdc ++。so.6的本地副本

  2. 2

    如何指定要使用的libstdc ++。so.6

  3. 3

    未在文件libstdc ++。so.6中定义GLIBCXX_3.4.21,具有链接时间参考

  4. 4

    mv:无法打开共享库文件“ libstdc ++。so.6”:符号链接嵌套太大

  5. 5

    libstdc ++。so.6:打开失败:没有这样的文件或目录

  6. 6

    mongod libstdc++.so.6 没有这样的文件或目录

  7. 7

    ldd可执行文件如何找到/usr/lib64/libstdc++.so.6?

  8. 8

    意外删除了libstdc ++。so.6 Ubuntu

  9. 9

    Linaro工具链libstdc ++。so.6丢失

  10. 10

    /libstdc++.so.6:找不到版本安装

  11. 11

    Linux上的matlab无法绘制任何内容(无法加载libstdc ++。so.6:找不到版本“ CXXABI_1.3.8”)

  12. 12

    apt:重定位错误:libstdc ++。so.6文件中未定义版本GLIBCXX_3.4.21,具有链接时间参考

  13. 13

    Android SDK-Aapt错误:libstdc ++。so.6无法打开共享库文件

  14. 14

    随应用程序一起交付libstdc ++。so.6

  15. 15

    Genymotion:/usr/lib/x86_64-linux-gnu/libstdc++.so.6:找不到

  16. 16

    程序在错误的位置寻找libstdc ++。so.6,并且似乎忽略了LD_LIBRARY_PATH

  17. 17

    cmake:/usr/lib/libstdc++.so.6:找不到版本'GLIBCXX_3.4.20'(cmake要求)

  18. 18

    ADT-libstdc ++。so.6:无法打开共享对象文件

  19. 19

    找不到/lib64/libstdc++.so.6 CentOS 7.3

  20. 20

    CentOS 7:libstdc++.so.6:未找到版本“CXXABI_1.3.9”

  21. 21

    如何正确捆绑libstdc ++。so。*?

  22. 22

    从源代码:libstdc ++。so.6构建gcc 4.8.3时出错:找不到版本“ CXXABI_1.3.8”(/ usr / lib / x86_64-linux-gnu / libicuuc.so.55要求)

  23. 23

    nodejs食谱:节点:/usr/lib64/libstdc++.so.6:找不到版本'GLIBCXX_3.4.15'(由节点要求)

  24. 24

    找不到两个libstdc ++。so.6文件和版本'GLIBCXX_3.4.21'错误

  25. 25

    缺少libcryptopp.so.6

  26. 26

    (pam_ldap.so)/lib/libc.so.6:找不到版本“ GLIBC_2.28”

  27. 27

    ld.so.cache和libc.so.6是否为每个调用映射了内存?

  28. 28

    12.04上不同版本的libstdc ++ 6

  29. 29

    12.04上不同版本的libstdc ++ 6

热门标签

归档