82.go交叉编译windows下编译linux运行程序
2019-12-19 本文已影响0人
厚土火焱
go语言开发的一个让人激动的特性就是可以跨平台。同样的代码,无需修改,只要重新编译一下就可以在另一个平台下运行,而你只需要在编译的时候指定一下目标平台系统就可以了。
最常见的就是windows下开发完的应用需要跑在linux上了。
拿一个已经开发完成的web程序来实践,在windows上编译出red hat linux上的应用吧。编译到其他系统也相差无几。
首先,编译使用命令行窗口进行。
SET CGO_ENABLED=0
SET GOOS=linux
SET GOARCH=amd64
go build 我的应用.go
其中“我的应用.go”就是要编译的go程序了。

实操的结果就是在文件main.go的路径下生成了一个main文件。

把这个编译结果main文件及程序运行配置文件静态文件等一起复制到red hat linux中。我这里把它放在desktop了。

之后打开terminal

第一次可能需要给main程序权限
chmod 777 程序名称
我这里输入的命令是 chmod 777 main
之后就可以直接运行main程序了
./main
一般情况下,直接运行就是可以的

欣赏一下我此次测试实践的效果

如果你想停掉这个应用。先ps命令找到这个应用

使用kill命令,关掉这个进程

再刷新浏览器就发现应用已经停止了

现在重新运行起来

刷新浏览器,一切又都恢复正常了。
