23,223
社区成员
发帖
与我相关
我的任务
分享代码没编程库 直接调用时没问题;
但是代码编译成.so库 使用main函数调用 ,
运行后报错Segmentation fault (core dumped) ,为什么呢,
主要问题代码在于,类中的成员变量类型为map类型,map的第二个参数是别的类对象
这个第二个参数不管放对象,还是对象的地址,都会报错Segmentation fault (core dumped)
查网上 说生成core文件 用gdb调整
但是core文件也生成不出来, 累觉无爱, 想着能不能网上有大神解谜
最后的问题是我这套代码A依赖另外一套第三方库文件B.so(其实只依赖B的结构体)
直接调用的时候自然而然就调用了第三方库里的内容;
当我把代码A编库的时候只带了B的include.h 编译都没有报错
猜测:
当运行C的时候 调用到A.so时, 没有链接到B.so,有些结构体的拷贝构造 无法确认??
总而言之,编译A.so时, B.so也要放到编译环境里进行编译
ps:
最开始编译A.so 没放入B.so是因为 最终代码C也依赖B.so
关系就是C依赖A.so和B.so , A.so也依赖B.so
这时候最好要保证 编译A时用的B.so与最终代码C依赖的B.so为一个版本 否则也会爆出莫名的问题
需要提供更多信息,如操作系统,系统架构平台。
至少给出出问题的主干代码。