$ go version
go version weekly.2012-02-22 +96bd78e7d35e
$ go tool cgo glfw.go
$ ls _obj/
_cgo_.o _cgo_defun.c _cgo_export.c _cgo_export.h _cgo_flags _cgo_gotypes.go _cgo_main.c glfw.cgo1.go glfw.cgo2.c
At this point _cgo_export.h is:
/* Created by cgo - DO NOT EDIT. */
typedef unsigned int uint;
typedef signed char schar;
typedef unsigned char uchar;
typedef unsigned short ushort;
typedef long long int64;
typedef unsigned long long uint64;
typedef __SIZE_TYPE__ uintptr;
typedef struct { char *p; int n; } GoString;
typedef void *GoMap;
typedef void *GoChan;
typedef struct { void *t; void *v; } GoInterface;
$ go tool cgo callback.go
$ ls _obj/
_cgo_.o _cgo_export.c _cgo_flags _cgo_main.c callback.cgo2.c glfw.cgo2.c
_cgo_defun.c _cgo_export.h _cgo_gotypes.go callback.cgo1.go glfw.cgo1.go
_cgo_export.h now looks like:
/* Created by cgo - DO NOT EDIT. */
#line 7 "callback.go"
#include "glue.h"
extern void goWindowSizeCB(int, int);
extern int goWindowCloseCB(void);
extern void goWindowRefreshCB(void);
extern void goMouseButtonCB(int, int);
extern void goMousePosCB(int, int);
extern void goMouseWheelCB(int);
extern void goKeyCB(int, int);
extern void goCharCB(int, int);
void setWindowSizeCB() { glfwSetWindowSizeCallback(goWindowSizeCB); }
void setWindowCloseCB() { glfwSetWindowCloseCallback(goWindowCloseCB); }
void setWindowRefreshCB() { glfwSetWindowRefreshCallback(goWindowRefreshCB); }
void setMouseButtonCB() { glfwSetMouseButtonCallback(goMouseButtonCB); }
void setMousePosCB() { glfwSetMousePosCallback(goMousePosCB); }
void setMouseWheelCB() { glfwSetMouseWheelCallback(goMouseWheelCB); }
void setKeyCB() { glfwSetKeyCallback(goKeyCB); }
void setCharCB() { glfwSetCharCallback(goCharCB); }
typedef unsigned int uint;
typedef signed char schar;
typedef unsigned char uchar;
typedef unsigned short ushort;
typedef long long int64;
typedef unsigned long long uint64;
typedef __SIZE_TYPE__ uintptr;
typedef struct { char *p; int n; } GoString;
typedef void *GoMap;
typedef void *GoChan;
typedef struct { void *t; void *v; } GoInterface;
extern void goWindowSizeCB(int p0, int p1);
extern int goWindowCloseCB();
extern void goWindowRefreshCB();
extern void goMouseButtonCB(int p0, int p1);
extern void goMousePosCB(int p0, int p1);
extern void goMouseWheelCB(int p0);
extern void goKeyCB(int p0, int p1);
extern void goCharCB(int p0, int p1);
and the first 20 lines of callback.cgo2.c are:
#line 7 "callback.go"
#include "glue.h"
extern void goWindowSizeCB(int, int);
extern int goWindowCloseCB(void);
extern void goWindowRefreshCB(void);
extern void goMouseButtonCB(int, int);
extern void goMousePosCB(int, int);
extern void goMouseWheelCB(int);
extern void goKeyCB(int, int);
extern void goCharCB(int, int);
void setWindowSizeCB() { glfwSetWindowSizeCallback(goWindowSizeCB); }
void setWindowCloseCB() { glfwSetWindowCloseCallback(goWindowCloseCB); }
void setWindowRefreshCB() { glfwSetWindowRefreshCallback(goWindowRefreshCB); }
void setMouseButtonCB() { glfwSetMouseButtonCallback(goMouseButtonCB); }
void setMousePosCB() { glfwSetMousePosCallback(goMousePosCB); }
void setMouseWheelCB() { glfwSetMouseWheelCallback(goMouseWheelCB); }
void setKeyCB() { glfwSetKeyCallback(goKeyCB); }
void setCharCB() { glfwSetCharCallback(goCharCB); }
Any idea for a quick fix?
Ciao.