我的最终目标是成功链接到Go包中的一些DLL(opengl32.dll glfw.dll和glu32.dll) - 但是trying to link to the go-glfw package gave me "not defined" errors。Windows DLL与cgo链接
因此,我决定从%GOROOT%\ misc \ cgo \ life中的简单未修改示例中,获得一个非常简单的cgo动态/共享库链接工作。但是,仅仅调用命令去建立-o生活main.go失败,基本上是相同的链接器错误,即:
go-build374967034/_/C_/Go/misc/cgo/life.a(c-life.o)(.text): _assert: not defined
“没有定义” ...只是完全相同的错误我试图链接的时候了glfw按照上面的。
这是一个新鲜的未经过调整的版本,安装了Go 1.0.1,今天上午刚刚在香草,相当新的Win7 64位安装中下载。什么可能会出错?我知道... Windows。愿意听到任何想法......看起来像DLL与CGO的链接是一件不容易的事情,并且从我在网上阅读的内容中很容易做到。然而,即使最简单的例子也不适合我。
只是一个说明:没有“运行时臭名昭着的内存泄漏“,Go有一个保守的垃圾收集器,*在32位系统中,在极少数情况下*意味着垃圾不会被收集。没有人报告过64位系统的任何问题,无论如何它要快得多,并且测试得更多。 tl; dr:在64位下坚持下去,你应该没有什么可担心的。 – uriel 2012-04-28 12:50:45
是的,有3个修补程序集适用于Go 1.0.1可解决问题:http://groups.google.com/group/golang-nuts/browse_thread/thread/b98c3677ec716379 ...我仍然遇到问题但是,这是另一回事......所以将其标记为答案。 – metaleap 2012-04-29 02:58:20
只是为了防止任何人对我非常奇特的glfw-only cgo问题感兴趣... http://stackoverflow.com/questions/10369513/dll-linking-via-windows-cgo-gcc-ld-freeglut-works-glfw -doesnt-whats-the-c – metaleap 2012-04-29 04:27:48