急求问 Cgo 关于 undefined (type *TEST_ST has no field or method test1)是什么原因????

JGbooks · · 1633 次点击
**关于Cgo调用动态库发现的一些问题** Cgo 条件编译设置 ``` #cgo CFLAGS: -Wall #cgo CFLAGS:-I./include #cgo windows,386 LDFLAGS:-L./lib/win/386 #cgo windows,amd64 LDFLAGS:-L./lib/win/amd64 #cgo windows LDFLAGS: -lpthreadGC2 -lengine -lm #cgo linux LDFLAGS:-L./lib/linux #cgo linux LDFLAGS:-lengine -lpthread -lm ``` 如果是将动态库编译进exe 文件就忽略如下 Cgo 调用动态库时,工程设计时,创建lib 链接动态库时可自行寻找lib中动态库,如果lib下面时2级目录,目前测试在执行程序中不能直接链接
#4
更多评论
` 修改程序:C.test_printf(&h.t.num1) //这里会发生错误,这是怎么回事,是wingw问题吗?` `修改程序:打印出修改 printf("%d %s\r\n", p->id, p->name);` 然而测试通过,但是还是遇到 `.\engine.go:395: h.m.linfo undefined (type _Ctype_struct___0 has no field or method linfo)` 虽然程序不一样,但是设计方法一样。windows32位 linux64位均可以,就是windows 64 不行???
#1
修改了下 ```go package main /* #include "test.h" void test_printf(struct test1 *p) { printf("%d %s\r\n", p->id, p->name); } */ import "C" type TEST_ST struct { t C.test_st } func NewTest_ST() *TEST_ST { return &TEST_ST{} } func (h *TEST_ST) Pri() { C.test_printf(&h.t.num1) } func main() { h := NewTest_ST() h.Pri() } ```
#2