内容简介:本文主要介绍在window环境下,使用开发工具liteide对go程序进行交叉编译(在一个平台上生成另一个平台的可执行程序),将生成的可执行文件部署在Linux服务器上,使我们开发的程序能直接运行在linux上。开发环境开发环境为 :windows
本文主要介绍在window环境下,使用开发工具liteide对 go 程序进行交叉编译(在一个平台上生成另一个平台的可执行程序),将生成的可执行文件部署在 Linux 服务器上,使我们开发的程序能直接运行在linux上。
开发环境
开发环境为 :windows
开发IDE为:liteidex
操作步骤
1.交叉编译
Windows 下编译 Linux 64位可执行程序,这里需要解释一下
GOOS:目标平台的操作系统(darwin、freebsd、linux、windows)
GOARCH:目标平台的体系架构(386、amd64、arm) 交叉编译不支持 CGO 所以要禁用它
具体命令如下:
SET CGO_ENABLED=0 SET GOOS=linux SET GOARCH=amd64 go build main.go
首先进入cmd命令行,cd到go环境的安装目录下的src目录;然后依次执行以下命令(执行前先安装tdm64-gcc-4.8.1-3):
set GOOS=linux set GOARCH=386 set CGO_ENABLED=0 make.bat
如果要生成64位linux下的运行程序则依次输入下列命令:
set GOOS=linux set GOARCH=amd64 set CGO_ENABLED=0 make.bat
如果要生成arm6下的运行程序则依次输入下列命令:
set GOOS=linux set GOARCH=arm set GOARM=6 set CGO_ENABLED=0 make.bat
例如:我将go环境安装在D:\Go下,并且我要生成64位linux下的运行程序;则我需要在cmd命令行下输入:
C:\Users\Administrator>d: D:>cd d:/go/src d:\Go\src> set GOOS=linux d:\Go\src> set GOARCH=amd64 d:\Go\src> set CGO_ENABLED=0 d:\Go\src> make.bat
2.执行完第一步后,就可以在IDE中对GO程序进行交叉编译了;在IDE中将编译的环境变量设置为cross-linux64(根据需要选择),然后点击查看编辑环境变量,根据go的安装配置好设置信息,保存!
3.进入到程序的工作路径(即main程序所在路径),go build main.go则会在项目根目录生成相应的执行文件,执行文件名称为根目录的文件名。将生成的执行文件和程序一些其他的文件(主要是一些和程序相关的配置文件等静态文件)上传到linux服务器,例如使用beego框架,除了上传执行文件外还需要将views,static,conf等3个文件夹上传到服务器。
特别强调一下,每次重新部署服务时,一定要记得同步更新配置文件!!!
4.进入linux系统下刚刚上传文件的目录,使用权限命令
chmod 777 程序名称
然后使用使程序在后台运行的命令
nohup ./程序名 &
如果要关闭程序,可以使用命令”ps” 查看后台程序的pid,然后使用“kill 程序pid”命令,关闭程序比如程序名为test,可以用如下命令查询
ps aux|grep test
需要在前台运行,直接
./程序名
前台进程的挂起:
ctrl+Z //进程的终止
后台进程的终止:
方法一: 通过jobs命令查看job号(假设为num),然后执行kill %num
方法二: 通过ps命令查看job的进程号(PID,假设为pid),然后执行kill pid
前台进程的终止:
ctrl+c
在Linux服务器上部署服务其他一些可能用到的命令有:
& 这个用在一个命令的最后,可以把这个命令放到后台执行
ps 列出系统中正在运行的进程
kill 发送信号给一个或多个进程(经常用来杀死一个进程)
jobs 查看当前有多少在后台运行的命令
fg 将后台中的命令调至前台继续运行
如果后台中有多个命令,可以用 fg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)
bg 将一个在后台暂停的命令,变成继续执行
如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)
如有不对欢迎指正,相互学习,共同进步。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 编译部署 Mysql 5.7
- 区块链研究实验室 | 使用JavaScript编译和部署以太坊智能合约
- 单台主机一键编译部署LAMP+wordpress+discuz系统的shell脚本
- linux 部署golang 项目(直接部署和基于nginx部署)
- Xcode 编译疾如风系列(二):并行编译
- 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Masterminds of Programming
Federico Biancuzzi、Chromatic / O'Reilly Media / 2009-03-27 / USD 39.99
Description Masterminds of Programming features exclusive interviews with the creators of several historic and highly influential programming languages. Think along with Adin D. Falkoff (APL), Jame......一起来看看 《Masterminds of Programming》 这本书的介绍吧!