我试图改变一个共享库中的特定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后出现符号查找错误所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)