如何从cgo到exe

时间:2010-05-07 01:51:05

标签: c go

从基本测试程序。 。

package main

/*
#include <stdio.h>
static void test() {
        printf("hello world");
}
*/
import "C"

func main() {
        C.test();
}

我做“cgo hello_cgo.go”并获得:

_cgo_.o
_cgo_defun.c
_cgo_gotypes.go 
hello_cgo.cgo1.go 
hello_cgo.cgo2.c

如何从这里编译到exe?

2 个答案:

答案 0 :(得分:6)

尝试使用go makefile。创建一个类似

的makefile
# Makefile
CGOFILES=test.go
TARG=test

include $(GOROOT)/src/Make.$(GOARCH)
include $(GOROOT)/src/Make.pkg

运行make将生成文件_obj/test.a,您必须与6l或类似链接。

答案 1 :(得分:2)

go1更新:

$ cat foo.go
package main

// #include <stdio.h>
// static void test() { printf("Hello, world\n"); }
import "C"

func main() {
    C.test()
}
$ go build foo.go
$  ./foo
Hello, world