前言

用matlab写了个算法,算法入参是个不定长二维数组,然后导出成c项目,golang调用c的方法。然后算法的入参就成了一个emxArray_real_t 的结构体
gcc:7.5.0
go:1.16.10

c文件打包成.so 动态链接库
gcc -fPIC -shared -o libFeatureData_FeatureIdentify.so FeatureData_FeatureIdentify.c

cgo相关是在main.go,c 方法是在 FeatureData_FeatureIdentify_d/FeatureData_FeatureIdentify.c/FeatureData_FeatureIdentify

项目地址:https://github.com/1486756632/cgo-emxArray_real_t

总结

matlab 转c相关的结构体、方法,在c项目下面都可以找到,但是经常会报错 “undefined xxxxxx”,可以尝试吧结构体、方法拷贝到同一个c文件,然后打包成动态链接库

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐