python 调用C生成 SO库报错:undefined symbol

python 调用C生成 SO库报错:undefined symbol,第1张

python 调用C生成 SO库报错:undefined symbol

  使用C++实现某些算法功能后,供python调用时出错:

AttributeError: /..../libHessian4Nii.so: undefined symbol: callVesselSegNii

    通过度娘得知是因为c++编译后的文件会把函数名重命名(这是便于实现重载功能)了,导致脚本调用时找不到函数名。

解决方法为使用 extern "C" 将需要暴露的头文件括起来即可。示例如下:

extern "C"{

  int callVesselSegNii(char* oriNiiFile, char* maskNiiFile, char* save_path);
 
}

重新编译后,调用正常!!!!

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

原文地址: https://outofmemory.cn/zaji/5073411.html

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

发表评论

登录后才能评论

评论列表(0条)

保存