关于交叉编译的错误: no buildable Go source files in $GOPATH/src/github.com/zeromq/goczmq

H,all 最近在研究分布式消息队列[zeroMQ](https://github.com/zeromq),[goczmq](https://github.com/zeromq/goczmq)是用go实现zeroMQ接口,我用goczmq写了个程序: req_msg.go ```go package main import ( "flag" "log" "github.com/zeromq/goczmq" ) var ( client = flag.String("s", "sewise", "sign of client") machine = flag.String("ma", "machine1", "sign of machine") msg = flag.String("m", "hello world", "message") count = flag.Int("c", 10, "send message count") reqAddr = flag.String("req", "tcp://127.0.0.1:5556", "request address") ) func main() { flag.Parse() reqEndpoint := *reqAddr reqSock := goczmq.NewSock(goczmq.Req) defer reqSock.Destroy() err := reqSock.Connect(reqEndpoint) if err != nil { log.Fatal("connect error:", err) } log.Println("connect to ", reqEndpoint) for i := 0; i < *count; i++ { message := [][]byte{[]byte(*client), []byte(*machine), []byte(*msg)} err := reqSock.SendMessage(message) if err != nil { panic(err) } m, err := reqSock.RecvMessage() if err != nil { panic(err) } // log.Println("response msg: ", string(*msg)) for _, v := range m { log.Println("response msg: ", string(v)) } // time.Sleep(time.Second) } } ``` 我的golang版本:`go version go1.7.1 darwin/amd64`,系统:`mac os` 我执行 `go build -o req req_msg.go` 没有任何问题 但是我想交叉编译的时候:`GOOS=linux go build -o req req_msg.go ` 就出现问题了: `go build github.com/zeromq/goczmq: no buildable Go source files in /Users/bao/go/src/github.com/zeromq/goczmq` 这是为何??
已邀请:

sheepbao - https://sheepbao.github.io 爱go,爱编程,领域网络开发,流媒体、分布式、网络加速

赞同来自: mintzhao

已经找到原因,需要用到cgo交叉编译的时候,要手动启动cgo,具体参考[blog](http://blog.csdn.net/coroutines/article/details/39546491)

mintzhao - 区块链开发者

这句话的意思是,在`/Users/bao/go/src/github.com/zeromq/goczmq`下面没有go文件,没有文件怎么编译呢?

要回复问题请先登录注册