一般我们在windows获取mac开发代码 , 编译的时候如果要编译成指定系统的二进制文件 , 这时就需要使用交叉编译 1....在Windows下编译Mac, Linux 编译成 Mac SET CGO_ENABLED=0 SET GOOS=darwin SET GOARCH=amd64 go build xxxx.go 编译成...Linux SET CGO_ENABLED=0 SET GOOS=linux SET GOARCH=amd64 go build xxxx.go 2.Mac下编译Linux, Windows 编译成...Linux CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build xxxx.go 编译成 Windows CGO_ENABLED=0 GOOS=windows...GOARCH=amd64 go build xxxx.go 3.Linux下编译Mac, Windows 编译成 Mac CGO_ENABLED=0 GOOS=darwin GOARCH=amd64
(1)首先进入go/src 源码所在目录,执行如下命令创建目标平台所需的包和工具文件。...$ cd /usr/local/go/src $ CGO_ENABLED=0 GOOS=linux GOARCH=amd64 ./make.bash 如果是 Windows 则修改 GOOS 即可。...$ CGO_ENABLED=0 GOOS=windows GOARCH=amd64 ./make.bash (2) 现在可以编译 Linux 和 Windows 平台所需的执行文件了。...$ CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build $ CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build 不过该方式暂时不支持.../make.bash --no-clean 转自:http://studygolang.com/topics/21 备注:golang 1.5以后貌似不需要第一步了,直接 $ CGO_ENABLED=0
RUN apk add build-base CGO_ENABLED=1 这两个命令是关键。...# 编译 FROM golang:1.15.2-alpine as builder #ENV CGO_ENABLED=0 ENV GOOS=linux ENV GOPROXY=https://goproxy.cn.../go/release/src WORKDIR /go/release/src #交叉编译,需要制定CGO_ENABLED=1,默认是关闭的 RUN GOOS=linux CGO_ENABLED=1
/make.bash # 如果你想在Windows 64位系统下运行 cd $GOROOT/src CGO_ENABLED=0 GOOS=windows GOARCH=amd64 ..../make.bash # 如果你想在Linux 32位系统下运行 cd $GOROOT/src CGO_ENABLED=0 GOOS=linux GOARCH=386 ..../make.bash # 如果你想在Linux 64位系统下运行 cd $GOROOT/src CGO_ENABLED=0 GOOS=linux GOARCH=amd64 ..../make.bash 交叉编译当前项目 # 如果你想在Windows 32位系统下运行 CGO_ENABLED=0 GOOS=windows GOARCH=386 go build test.go #...CGO_ENABLED=0 GOOS=linux GOARCH=386 go build test.go # 如果你想在Linux 64位系统下运行 CGO_ENABLED=0 GOOS=linux
Mac 下编译 Linux 和 Windows 64位可执行程序 CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go CGO_ENABLED=0...GOOS=windows GOARCH=amd64 go build main.go Linux 下编译 Mac 和 Windows 64位可执行程序 CGO_ENABLED=0 GOOS=darwin...GOARCH=amd64 go build main.go CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go Windows 下编译 Mac...和 Linux 64位可执行程序 SET CGO_ENABLED=0 SET GOOS=darwin SET GOARCH=amd64 go build main.go SET CGO_ENABLED
1. 安装 在mac上,用brew安装很方便: brew install go 2. 查看环境 brew安装的好处是安装完还会配好环境变量,可以查看: go env 3....交叉编译 生成跨平台程序: CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go CGO_ENABLED=0 GOOS=windows GOARCH...=amd64 go build main.go CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go 7.
尝试用go直接交叉编译 用CGO_ENABLED=1 GOOS=linux GOARCH=arm GOARM=7 go build -ldflags "-w -s" -o arm-mygofile mygofile.go...尝试用arm的gcc 在centos7中安装,yum install gcc-arm-linux-gnu 用CGO_ENABLED=1 GOOS=linux GOARCH=arm GOARM=7 CC=...用 CGO_ENABLED=1 GOOS=linux GOARCH=arm GOARM=7 CC=arm-linux-gnu-gcc CGO_CFLAGS="-g -O2 --sysroot=/.......用 CGO_ENABLED=1 GOOS=linux GOARCH=arm GOARM=7 CC=arm-linux-gnu-gcc CGO_CFLAGS="-g -O2 --sysroot=/.......用 CGO_ENABLED=1 GOOS=linux GOARCH=arm64 CC="aarch64-linux-gnu-gcc" CGO_CFLAGS="-g -O2 --sysroot=/....
前言 为了测试 NS,本尊在腾讯云上买了一个CVM,1核1G。编译的时候发现居然出现了内存溢出,不得不琢磨下交叉编译。顺便感受下 GO 跨平台的亮点特色。...wyavodI6wtCUQmqnJiWv/7iQtSHRrWI3EdEIEiQGf -extld=gcc /home/ubuntu/.cache/go-build/6c/6c220903b70c0a36ef7d2091e510fdb0bf1f586f7385fe8e2467e55eec8e78af-d...1 交叉编译命令 Mac 下编译 Linux 和 Windows 64位可执行程序 CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go CGO_ENABLED...GOARCH=amd64 go build main.go CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go Windows 下编译 Mac...和 Linux 64位可执行程序 SET CGO_ENABLED=0 SET GOOS=darwin SET GOARCH=amd64 go build main.go SET CGO_ENABLED
二、两种常见示例 2.1 SSH 访问内网机器 1、图示 图示最能一眼直观看懂,奈何翻遍互联网没有找到让我满意的示意图,为清晰表达,故简单画图。 ?...2020/11/24 15:24:49 [I] [control.go:180] [545f544dbae98e7d] [ssh] start proxy success 2.2 安全地暴露内网服务 1、...:130] [4d8da059a1c4e710] visitor added: [secret_ssh_visitor] 三、如何检测 3.1 针对第一种 1、特征提取 登陆后查看连接: w查看有localhost...3.2 针对第二种 1、特征提取 这里只贴图,请按照上节内容自我思考。 ?...%A1%E5%88%92.htmlFRP改造计划 ?
更专注于提取页面中的JS与URL链接,提取的数据更完善且可查看状态码、内容大小、标题等 基于golang的多线程特性,几千个链接也能几秒内出状态检测结果 有什么需求或bug欢迎各位师傅提交lssues 功能说明 1....可以看到当前版本更新日期) -u 目标URL -d 指定获取的域名 -a 自定义user-agent请求头 -s 显示指定状态码,all为显示全部 -m 抓取模式: 1...,需指定url文本路径 -o 结果导出到csv文件,需指定导出文件目录(.代表当前目录) 编译 以下是在windows环境下,编译出各平台可执行文件的命令 windows #64位 SET CGO_ENABLED...GOOS=windows SET GOARCH=amd64 go build -ldflags "-s -w" -o URLFinder-windows64.exe main.go #32位 SET CGO_ENABLED...=0 SET GOOS=linux SET GOARCH=amd64 go build -ldflags "-s -w" -o URLFinder-linux64 main.go #32位 SET CGO_ENABLED
编译 项目基于golang 1.17版本进行开发,如需自行编译 git clone https://github.com/mmM1ku/Mscan cd Mscan #m1 mac sudo CGO_ENABLED...arm64 go build -a -ldflags '-s -w --extldflags "-static -fpic"' -o mscan_darwin_arm64 #intel mac sudo CGO_ENABLED...GOARCH=amd64 go build -a -ldflags '-s -w --extldflags "-static -fpic"' -o mscan_darwin_amd64 #linux sudo CGO_ENABLED...=amd64 go build -a -ldflags '-s -w --extldflags "-static -fpic"' -o mscan_linux_amd64 #windows sudo CGO_ENABLED
1、安装Go开发包 下载地址:https://golang.google.cn/dl/ 下载适合自己的版本进行安装即可。...4、HelloWorld 代码如下:main.go package main import "fmt" func main(){ fmt.Println("Hello World")} 编译: 1、...go run main.go 5.3、go install 这个命令的作用分两步: 使用go build命令进行编译; 将编译好的二进制文件拷贝到我们的 GOPATH/bin 目录下 6、跨平台编译 (1)...、在windows上编译一个Linux下可执行文件 SET CGO_ENABLED=0 // 禁用CGOSET GOOS=linux // 目标平台是linuxSET GOARCH=amd64 /...=0 GOOS=windows GOARCH=amd64 go build (3)、在Linux上编译Windows和MAC下的可执行文件 CGO_ENABLED=0 GOOS=darwin GOARCH
") 5} 运行下面的命令会创建一个超小的镜像, 这是我们的第一种方式: 1GOOS=linux CGO_ENABLED=0 go build -ldflags="-s -w" -o app app.go...第二种方式是使用一个Dockerfile文件: 1FROM scratch 2ADD app / 3CMD ["/app"] 运行下面的命令创建一个镜像: 1docker build -t app2 ....编译Go程序 上面的例子中我们使用下面的命令编译Go程序: 1GOOS=linux CGO_ENABLED=0 go build -ldflags="-s -w" -o app app.go 你可能在其它一些文章中还看到...installsuffix参数: 1GOOS=linux CGO_ENABLED=0 go build -ldflags="-s -w" -installsuffix cgo -o app app.go...本身Go是静态编译的, 对于CGO, 如果设置CGO_ENABLED=0,则完全静态编译,不会再依赖动态库。
cmd下依次执行以下命令: SET CGO_ENABLED=0 // 禁用CGO SET GOOS=linux // 目标平台是linux SET GOARCH=amd64 // 目标处理器架构是...Windows下编译Mac平台64位可执行程序: SET CGO_ENABLED=0 SET GOOS=darwin SET GOARCH=amd64 go build Mac 下编译 Linux 和...Windows平台 64位 可执行程序: CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build CGO_ENABLED=0 GOOS=windows GOARCH...=amd64 go build Linux 下编译 Mac 和 Windows 平台64位可执行程序: CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build CGO_ENABLED
具体怎么用呢,比如这个例子里是需要在Mac环境下编译能在Linux系统amd64架构下运行的执行文件,就得酱婶进行编译: CGO_ENABLED=0 GOOS=linux GOARCH=amd64...Go 的命令集是原生支持交叉编译的,使用方法也很简单,比如上面已经演示过的 CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go 参数说明...CGO_ENABLED : CGO 表示golang中的工具,CGO_ENABLED 表示CGO禁用,交叉编译中不能使用CGO的 GOOS: 目标平台 mac 对应 darwin linux 对应...下去执行 # Mac 平台可执行程序 CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go # Windows可执行程序 CGO_ENABLED...=0 SET GOOS=darwin SET GOARCH=amd64 go build main.go # Linux 去执行 SET CGO_ENABLED=0 SET GOOS=linux SET
修改.env文件不会立即生效,需要重启go服务才会生效 go项目运行之后,修改config.ini配置文件会立即生效,无需重启go服务 重新部署项目 开发环境重新build项目(Mac环境的打包语法) CGO_ENABLED.../二进制文件名 > nohup.log 2>&1 & 使用&&同时执行2条命令,避免服务中断 开发环境 我们在开发环境如果要马上看到效果,并且不用考虑进程中断的问题,可以使用kill -9强制结束进程.../singo > nohup.log 2>&1 & 4543是要结束的进程pid singo是二进制文件名 使用&&同时执行2条命令,避免服务中断 附录Windows平台的打包语法 windows set...CGO_ENABLED=0 //禁用CGO set GOOS=linux //目标平台为linux set GOARCH=amd64 //目标处理器架构是amd64 go build -o name...//编译可执行文件到当前目录 (-o:自定义文件名) Mac CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
RED_COLOR='\E[1;31m' #红 GREEN_COLOR='\E[1;32m' #绿 YELOW_COLOR='\E[1;33m' #黄 BLUE_COLOR='\E[1;34m' #...}\n" kill -9 $i1 && nohup ....手动分步操作 下面再说一下如果不使用脚本的话,如何一步一步手动操作,部署项目到服务器 部署项目 开发环境重新build项目(Mac环境的打包语法) CGO_ENABLED=0 GOOS=linux GOARCH.../singo > nohup.log 2>&1 & 跨平台编译:windows set CGO_ENABLED=0 //禁用CGO set GOOS=linux //目标平台为linux set GOARCH...=amd64 //目标处理器架构是amd64 go build -o name //编译可执行文件到当前目录 (-o:自定义文件名) 跨平台编译:Mac CGO_ENABLED=0 GOOS=linux
在该目录中创建一个main.go文件: 1 package main // 声明 main 包,表明当前是一个可执行程序 2 3 import "fmt" // 导入内置 fmt 包 4 5 func...只需要指定目标操作系统的平台和处理器架构即可: SET CGO_ENABLED=0 // 禁用CGO SET GOOS=linux // 目标平台是linux SET GOARCH=amd64 /...Mac 下编译 Linux 和 Windows平台 64位 可执行程序: CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build CGO_ENABLED=0 GOOS...=windows GOARCH=amd64 go build Linux 下编译 Mac 和 Windows 平台64位可执行程序: CGO_ENABLED=0 GOOS=darwin GOARCH=amd64...go build CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build Windows下编译Mac平台64位可执行程序: SET CGO_ENABLED=0
构建时要求 Go 1.15+ C 编译器 - 所以交叉编译很困难,编译时需要开启 CGO_ENABLED=1 运行时要求 Oracle 客户端库 — 请参阅 ODPI-C 尽管编译不需要 Oracle...同时避免每次拷贝和安装libaio1,减少镜像构建时间。...项目Dockerfile 使用oracle的go项目打包,需要设置CGO_ENABLED=1 # 多阶段构建 #构建一个 builder 镜像,目的是在其中编译出可执行文件gaf FROM cgo-debain...mod download -x RUN --mount=type=cache,target=/go/pkg/mod/ \ --mount=type=bind,target=. \ CGO_ENABLED...构建Godror应用需要Go 1.15+和C编译器,且需设置CGO_ENABLED=1。
领取专属 10元无门槛券
手把手带您无忧上云