gpt4 book ai didi

c - 为什么共享库路径在可执行文件中被硬编码?

转载 作者:IT王子 更新时间:2023-10-29 01:24:10 25 4
gpt4 key购买 nike

最近我得到了一个测试二进制文件。当我使用 objdump 检查它时,我发现它包含硬编码的库路径。为什么需要对这样的路径进行硬编码?路径不应该取自 SHELL 环境变量或 -L 参数吗?

objdump -p testprog

输出包括共享库的硬编码路径:

....
NEEDED /home/test/lib/liba.so
NEEDED /home/test/lib/libb.so
NEEDED /home/test/lib/libc.so
....

最佳答案

这可能是因为这三个 .so 文件在构建测试程序的主机上没有 SONAME。告诉构建它的人用 -Wl,soname,liba.so 重建 liba.so 并且其他两个类似,然后重新链接主程序。

关于c - 为什么共享库路径在可执行文件中被硬编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11305767/

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