replacestring后出现符号查找错误

replacestring后出现符号查找错误,第1张

概述replacestring后出现符号查找错误

我试图改变一个共享库中的特定string,并运行与之链接的程序后,我得到这个错误:

./prog: symbol lookup error: /home/user/lib/libprog.so: undefined symbol: have_qwerty,version PROG_PRIVATE

改变string的命令是:

sed -i "s/have_somewq/have_qwerty/g" ./libprog.so

理论上,这应该工作不pipe,因为这个string在使用这个库的所有文件和整个库中都被改变了。

那么这里有什么问题呢?

@H_419_15@

我该如何解决或deBUGging这个问题?

内存仍然可以与共享库一起工作

在C / C ++项目中find“undefined”引用

即使nm指示该符号存在于共享库中,也是未定义的符号引用

使用c / c ++编写的共享库的linux C程序

NUMA机器上共享库的瓶颈

是否改变类私人数据成员的顺序会打破ABI

gdb无法打开共享对象文件

在windows和liNUX中创build程序库

LLVM超出源代码构build:不支持可加载模块(在linux上)

在另一台计算机上启动使用MinGW编译的windows应用程序时出现库链接错误

sed -i“s / have_somewq / have_qwerty / g”./libprog.so

你想使用sed在二进制文件中更改符号名称吗? 这是不行的。 一个原因是,除了符号名称之外,共享库还在专用的部分中包含了他们的哈希值,如果不费很大的努力就不能修改。

还要注意,符号具有PROG_PRIVATE版本,这可能意味着它并不意味着在库之外使用。

总结

以上是内存溢出为你收集整理的replacestring后出现符号查找错误全部内容,希望文章能够帮你解决replacestring后出现符号查找错误所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1270371.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存