Closed rampageX closed 10 years ago
我不确定原因。我配置交叉编译使用的是 golang-crosscompile 脚本,然后自己设置 GOARM, GOARCH 来编译的。
我也是用的这个脚本,但是没设置 GOARM 和 GOARCH 而是使用了 go-linux-arm 命令行,编译出来的文件 4.3M ,比你编译出来的小很多,估计有问题。我试试你的方法。
export GOARCH=arm export GOARM=5 go get github.com/cyfdecyf/cow
貌似还是不行,出来的 cow 还是 4.xM。。。。
punk@ubuntu:~$ file /home/punk/mygo/bin/linux_arm/cow /home/punk/mygo/bin/linux_arm/cow: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, not stripped punk@ubuntu:~$ env | grep '^GO' GOARM=5 GOARCH=arm GOPATH=/home/punk/mygo
GO 的版本有没影响的?我是用: hg clone -u default https://code.google.com/p/go $HOME/go 下载的,还是要下载某个特定版本?
下载 go1.1.linux-386.tar.gz 编译可以了,看来是 GO 版本问题。
hello,我下载了go1.1.linux-386.tar.gz ,用ubuntu 交叉编译 出现了 mygo/src/github.com/cyfdecyf/cow/parent_proxy.go:290: undefined: sort.Stable 这个错误是什么原因啊?是交叉平台的问题吗?
这个函数在 Go 1.3 中才有。如果一定要用 Go 1.1 的话把 Stable 改成 Sort。
上面有兄弟反应go 1.3 编译的不能运行arm 架构的 asus ac68u上。
go1.3交叉编译成功运行。 奇怪的是cyf兄弟编译的版本http://dl.chenyufei.info/cow/cow-linux-armv5tel-0.9.2.gz 运行在同一个路由器出现: illegal instruction
我是在 Mac 上交叉编译的,不过我只有测过 armv7。能贴下你用来交叉编译的命令么?
我是按照你上面推荐的这个:http://dave.cheney.net/2012/09/08/an-introduction-to-cross-compilation-with-go 照猫画虎弄得。 不过我没源码编译go,直接下载http://golang.org/dl/ 下的二进制包go1.3.linux-amd64.tar.gz,解压,设置环境:export GOROOT=$HOME/go/go export GOPATH=$HOME/go/mygo export PATH=$PATH:$GOROOT/bin export GOARCH=arm export GOARM=5 cd $GOROOT/src && ./make.bash go get github.com/cyfdecyf/cow
get it, over!
Hi! 各位:
我在一台古老的ARM926EJS板子, 也遇到 illegal instruction
的問題, 感謝 @kdrx , 改用你上面的方法就解決了.
我在 Ubuntu 上配置好 Go 的交叉编译环境,用:
GOARM=5 go-linux-arm get github.com/cyfdecyf/cow
编译出来的 cow 执行文件:
$ file ~/mygo/bin/linux_arm/cow /home/punk/mygo/bin/linux_arm/cow: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, not stripped
但是放去路由器上运行则提示 illegal instruction;
网站提供的 cow-linux-armv5tel-0.9.1.gz 在同一路由器上运行没有问题。
请问编译过程中需要注意什么?