我有一段C++代码,并创建了一个.so文件。我的目标是在python脚本中加载这个.so文件。为了暴露C++方法,我为它们创建了一个C封装方法并暴露了C方法。然而,在尝试在python脚本中加载.so文件时,出现了Undefined symbol错误。这些错误是用于某些C++类中的内部使用方法,并未从.so文件中暴露出来。(nm -C -u .so)
以下是需要解决的问题:
以下是需要解决的问题:
- 当创建.so文件时,名称不应该已经解析吗?
- 如何解决.so文件中的未定义符号最佳方法?
C++ :
class myclass {
public:
void func1(int _i);
int getval();
};
C wrapper :
extern "C" int getval_w();
int getval_w() {
myclass obj;
return obj.getval();
}
当我将这段代码编译成.so文件并在python脚本中加载时,会出现以下错误: 未定义的符号:“func1的重载名称”