我有一个旧的 .so 文件,其中包含一个非常复杂的 clang 解析器,我必须从 go 模块中调用它。 ... lib := C.dlopen(C.CString("./resources/bin/parser.so"), C.RTLD_LAZY) functions_address := C.dlsym(lib, C.CString("parse"))
1 回答
慕沐林林
TA贡献2016条经验 获得超9个赞
我通过定义一个 C typedef、创建一个辅助方法并将“functions_address”传递给该辅助方法来解决这个问题,该辅助方法通过引用调用另一个函数
typedef char (*parse) (char *file);
char bridge (parse p, char* file) {
p(file);
}
- 1 回答
- 0 关注
- 112 浏览
添加回答
举报
0/150
提交
取消