您当前的位置: 首页 > 

柳鲲鹏

暂无认证

  • 0浏览

    0关注

    4642博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

库、dlopen、函数名都正确,dlsym出错了,怎么回事

柳鲲鹏 发布时间:2022-03-30 11:11:05 ,浏览量:0

  感觉自己哪里都对:库编译通过,位置也对,dlopen()正确打开库,函数名(比如函数名是mainForMac)也正确,结果到了dlsym出错了,怎么回事?

  • 原因

  显然,库是c++编译的,实际上函数名在内部已经发行了变化。这个时候mainForMac可能变成了mainForMacZ3之类。当然了,试图使用新的函数名也是错误想法。

  • 解决办法

  应该这样声明mainForMac:

#ifdef __cplusplus
extern "C"{
#endif

int mainForMac(const int argc, const char**argv);

#ifdef __cplusplus
}
#endif

再重新编译库即可。

关注
打赏
1665724893
查看更多评论
立即登录/注册

微信扫码登录

0.0522s