使用C++实现某些算法功能后,供python调用时出错:
AttributeError: /..../libHessian4Nii.so: undefined symbol: callVesselSegNii
通过度娘得知是因为c++编译后的文件会把函数名重命名(这是便于实现重载功能)了,导致脚本调用时找不到函数名。
解决方法为使用 extern "C" 将需要暴露的头文件括起来即可。示例如下:
extern "C"{
int callVesselSegNii(char* oriNiiFile, char* maskNiiFile, char* save_path);
}
重新编译后,调用正常!!!!