[问题] dlopen load shared object seg fault

楼主: antirazin (~ SNSD & KARA ~ )   2018-02-12 01:28:21
开发平台(Platform): (Ex: Win10, Linux, ...)
CentOS 7 (VMware)
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
g++
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
问题(Question):
手边有一个.so档,想透过dlopen使用里面的function,
虽然编译过了,但是执行时出现segmentation fault。
初步排错,改喂/usr/lib64下的内建library的.so没问题,
这样是表示这.so档有问题吗?
但我用nm print是没问题的。
目前没什么头绪,因此在这边请教各位大大m(_ _)m
喂入的资料(Input):
预期的正确结果(Expected Output):
错误结果(Wrong Output):
执行后Segmentation fault
程式码(Code):(请善用置底文网页, 记得排版)
#include <iostream>
#include <dlfcn.h>
int main(int argc, const char * argv[]) {
void* func = dlopen("/home/test/libtest.so", RTLD_LAZY);
//随便换成内建的 /usr/lib64/libz.so.1.2.7 的话就能跑完
if (!func) {
std::cerr << "Cannot load library: " << dlerror() << '\n';
return 1;
}
return 0;
}
补充说明(Supplement):
作者: waterspout (我看见常福在咬来威)   2018-10-11 21:45:00
其中这男子为什么在对方说不后 仍强行抚摸对方下体而里面有没有什么秘密? 好!我们今天也请到了五位来宾
作者: e6638   2018-10-11 21:46:00
皓平:其实马雅人早就预言到了
作者: wtchen (没有存在感的人)   2018-02-12 07:32:00
讯息不足,不补就砍文
作者: loveflames (咕啾咕啾魔法阵)   2018-02-12 08:49:00
你是叫别人隔空抓药吗
作者: descent (“雄辩是银,沉默是金”)   2018-02-12 21:21:00
你先不要用 dlopen, 直接 link 是正常的吗?试试看 gdb debug core 看能不能找出有问题的点如果可以, 提供那个 .so source code 是最好的

Links booklink

Contact Us: admin [ a t ] ucptt.com