2010-05-07 2 views
3

기본 테스트 프로그램에서. . . 여기에서 EXE로 컴파일 가야합니까 어떻게cgo에서 exe까지 얻는 방법

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

을 : 나는 "CGO hello_cgo.go"을받을 수 있나요

package main 

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

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

?

답변

6

go makefile을 사용해보십시오. 다음 6l 또는 유사한로 연결해야합니다 파일 _obj/test.a을 생산합니다

# Makefile 
CGOFILES=test.go 
TARG=test 

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

실행 메이크업 등의 메이크 파일을 만듭니다. go1에 대한

+0

감사합니다! 그게 효과가 있었어. 빠른 응답을 감사하십시오. –

2

업데이트 :

$ 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