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

JGbooks · · 1633 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

**环境:** ``` gcc 版本:gcc version 5.1.0 (x86_64-posix-seh-rev0, Built by MinGW-W64 project) mingw :64位 5.1.1 go版本:go version go1.10.3 windows/amd64 编译环境:LiteIDE、goland均可 ``` 测试程序如下: **test.h** ``` #ifndef _TEST_H_ #define _TEST_H_ #include <stdio.h> #include <stdlib.h> struct test1 { int id; char *name; }; struct test2 { int age; int high; }; typedef struct { struct test1 num1; struct test2 num2; }test_st; #endif ``` **test.c** ``` #include "test.h" void init (test_st *p){ test_st test; p->num1.id = 0; p->num1.name = "hi"; p->num2.age = 90; p->num2.high = 195; } ``` **test.go** ``` package main /* #include "test.h" void test_printf(struct test1 *p) { printf("%d %\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.test1) //这里会发生错误,这是怎么回事,是wingw问题吗? } func main() { h := NewTest_ST() h.Pri() } ``` **错误输出:** `.\test.go:20: h.test1 undefined (type *TEST_ST has no field or method test1)` `错误: 进程退出代码 2.` **现阶段状况** ``` 1、windows 32位可以通过,环境同上,位数为32位 2、Windows 64位 一直如上错误输出,请问是什么原因?? ```

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1633 次点击  
加入收藏 微博
4 回复  |  直到 2018-07-19 15:36:49
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传