Golang 中国

go语言版本是1.5.2,最简单的程序:

package main

import "fmt"

func main() {
  fmt.Println("hello!")
}

编译语句是:

set GOARCH=amd64
set GOOS=linux
go build

编译成功完成,没有报错,但是把编译好的程序放到LINUX主机上却运行不了,我是直接在LINUX上用文件名test运行的,也不提示错误,但是也没打印出hello,我哪儿做错了吗?在WINDOWS下是没有什么问题的。

5 回复
dxhdxh2k
#1 dxhdxh2k • 2015-12-31 08:44

linux上,GOARCH是不是amd64?

shook
#2 shook • 2015-12-31 14:47

@dxhdxh2k
我的LINUX是虚拟机,进去的时候显示:

Welcome to Ubuntu 14.04.3 LTS (GNU/Linux 3.19.0-42-generic x86_64)

应该是amd64的吧。

shook
#3 shook • 2015-12-31 15:05

我又配置了一个Linux的go环境,发现我直接在Linux下go run是正常的,但是go build之后还是运行不了呢!是不是我的执行命令有问题?截图如下:

heimeil
#4 heimeil • 2015-12-31 15:46

你运行的test是系统内建的,which test可以看见程序的路径,你运行的并不是当前目录下的test,当前目录下./test来运行

shook
#5 shook • 2015-12-31 18:20

@heimeil
太感谢了,确实是您说的问题,我的运行方式不对,而且上面交叉编译的问题也因为这个找到了原因,不是编译的问题,而是在Windows下编译的文件复制到Linux下没有运行权限,重新授权就解决了问题!

需要 登录 后方可回复, 如果你还没有账号你可以 注册 一个帐号。