gpt4 book ai didi

linux - libstdc++.so.6 : version not found - NO admin rights

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:24:25 24 4
gpt4 key购买 nike

我正在尝试从终端在远程机器上运行一个可执行文件 - SaTScanBatch,SaTScan 软件的可执行文件。

这是我得到的错误

/usr/lib64/libstdc++.so.6: 找不到版本“GLIBCXX_3.4.15”

问题类似于这些: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.15' not foundHow to fix: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.15' not found/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found

我的情况不同的是我没有管理员权限,所以我不能在 usr/lib 文件中添加库。我在我的远程存储库中下载了 libstdc++.6.0.15,我想用它来执行我的文件。

这是我尝试过的可能性

i) 修改环境变量LD_LIBRARY_PATH或LD_RUN_PATH或LD_PRELOAD为libstdc++.so.6.0.15的路径。--> 没有改变任何东西

ii) 以静态方式包含库

gcc SaTScanBatch -static-libstdc++

--> -static 选项无法识别,我猜远程机器的 GCC 版本太旧了。

iii) 尝试将文件链接到附加库:

gcc SaTScanBatch -L /path/library -l stdc++

或类似的

gcc SaTScanBatch -Wl,-rpath,path/to/library

-->错误

/usr/bin/ld: warning: Cannot create .eh_frame_hdr section, --eh-frame-hdr ignored.
/usr/bin/ld: error in SaTScanBatch64(.eh_frame); no .eh_frame_hdr table will be created.
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../lib64/crt1.o: In function _start:
(.text+0x20): undefined reference to "main"
collect2: ld returned 1 exit status

iv) 使用 PatchElf 链接文件和库 --> 我无法安装 PatchElf,因为没有管理员权限

感谢您的任何建议!

最佳答案

Modify environment variable LD_LIBRARY_PATH or LD_RUN_PATH or LD_PRELOAD to the path of libstdc++.so.6.0.15. --> Did not change anything

您到底尝试了什么?

LD_LIBRARY_PATH 应该设置为包含新的 libstdc++.so.6 的目录,而不是文件本身,您需要export环境变量,因此它可用于子进程,而不仅仅是您的 shell。并且您需要从 libstdc++.so.6libstdc++.so.6.0.15 的符号链接(symbolic link),因为动态加载器将查找该名称,而不是 libstdc++ .so.6.0.15

LD_RUN_PATH 在链接期间用于将路径烘焙到可执行文件中。尝试运行可执行文件时,它在运行时什么也不做。如果您使用它,您需要将它设置为在远程计算机上 将包含libstdc++.so.6 文件的目录。同样,它需要设置为一个目录,而不是文件的路径。

LD_PRELOAD 又有所不同,而且几乎肯定不是您想要的。当可执行文件运行时,您将使用它强制加载特定的共享库。这可用于预加载较新的 libstdc++,但通常最好使用 LD_LIBRARY_PATH 在运行时设置路径或使用 LD_RUN_PATH 在链接时设置路径.

Try to link the file to the additional library:

您显示的命令是无稽之谈,它们不包含链接中的任何对象,因此您试图从无到有地创建可执行文件。这就是您收到错误 undefined reference to "main"

的原因

对于您的场景,我建议使用 LD_LIBRARY_PATH

关于linux - libstdc++.so.6 : version not found - NO admin rights,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37668738/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com