i,m trying to use a Golang service in flutter app with using ffi library [
https://pub.dev/packages/ffi]
, but i have a problem to send struct from go and use in flutter ... ( i can use GetKey & SumNumber func in dart but when i used struct show me err msg " Invalid argument(s): Failed to lookup symbol 'GetPerson': error code 127 " )
In my go file , i try to build this lib with go build -buildmode=c-shared -o lib.a lib.go
package main
import "C"
//export GetKey
func GetKey() \\\*C.char {
theKey := "123-456-789"
return C.CString(theKey)
}
//export SumNumbers
func SumNumbers(a, b int) int {
return a + b
}
//export GetPerson
func GetPerson() Person {
var p1 Person
p1.name = "name1"
p1.age = 20
p1.job = "job1"
p1.salary = 100
return p1
}
type Person struct {
name string
age int
job string
salary int
}
func main() {
}
and my dart code
class Person extends ffi.Struct {
external ffi.Pointer<Utf8> name;
external ffi.Pointer<Utf8> age;
external ffi.Pointer<Utf8> job;
external ffi.Pointer<Utf8> salary;
}
typedef CreatePerson = Person Function();
typedef GetInfo = ffi.Pointer<Utf8> Function(ffi.Pointer<Person>);
final createStructFn =
dylib.lookupFunction<CreatePerson, CreatePerson>('GetPerson');