Closed patyhank closed 1 year ago
@patyhank 给出你的测试环境,在darwin/amd64 golang1.20下未能复现你的错误
linux/amd64 go 1.20.4
有可能是間接使用泛型導致的嗎 因為我並沒有直接使用 maths.(*Vec3d[float64]).Add 直接在載入的檔案裡面使用似乎是可行的
在linux/amd64 golang 1.20中也无法复现你的问题
有可能是間接使用泛型導致的嗎 因為我並沒有直接使用 maths.(*Vec3d[float64]).Add 直接在載入的檔案裡面使用似乎是可行的
能否给出一个testcase
稍等
这样注册不了,你需要加载rawtest/shared这个包的.a
goloader.RegTypes(symPtr, []int32{}, math.Floor) goloader.ReadObjs([]string{"test.o", "/Users/xxx/Library/Caches/go-build/c0/c0617fe178f43e9f56e030c7e5c9fb1a66418b1482c5bbf86a0ef78436a9233f-d"}, []string{"Test", "rawtest/shared"}) 修改成这样就可以了
具体的这个包的路径在importcfg中可以查询到
這是泛型才需要這樣的嗎
這是泛型才需要這樣的嗎
不是,interface的也是如此
如果你有很多依赖在loader中不存在,建议使用https://github.com/eh-steve/goloader/tree/master 这个分支来处理
好的謝謝
已經有
goloader.RegTypes(symPtr, &maths.Vec3d[float64]{})
但還是會出現
unresolve external:maths.(*Vec3d[float64]).Add
Vec3d是這樣