1
zpfhbyx 2021-03-29 16:36:02 +08:00
docker ?
|
2
cheneydog 2021-03-29 16:38:35 +08:00
goland + gomod
|
3
ouyc OP |
4
2379920898 2021-03-29 17:05:46 +08:00
bee run 原生 就 go build
|
5
zhengxiaowai 2021-03-29 17:11:57 +08:00
go build ?????没懂楼主的意思。。
交叉编译的话可以指定 GOARCH |
6
raaaaaar 2021-03-29 17:13:23 +08:00 via Android
我也没懂,go build 不行吗?
|
7
huobazi 2021-03-29 17:14:57 +08:00
wsl 里玩呗
|
9
XIU2 2021-03-29 17:30:35 +08:00
Golang ?我都是直接写个简单的 bat 脚本,自动配置临时环境变量来编译不同平台 /系统的二进制版本。
脚本内容示例(只写了两个,其他平台 /系统同理): @echo off set version=v1.0.0 cd .. echo "ABC_linux_386..." SET CGO_ENABLED=0 SET GOOS=linux SET GOARCH=386 go build -o Releases\ABC_linux_386 -ldflags "-s -w -X main.version=%version%" echo "ABC_windows_amd64..." SET CGO_ENABLED=0 SET GOOS=windows SET GOARCH=amd64 go build -o Releases\ABC_windows_amd64.exe -ldflags "-s -w -X main.version=%version%" 如果是文件夹的话,再搭配一个自动压缩包的脚本就行了(或者合并到一个脚本中)。 脚本中的 main.version=%version% 是编译时写入版本号,可以删除。 |
10
selfeasy 2021-03-29 17:33:27 +08:00
makefile 中的命令 一条一条的在编辑器控制台执行
|
11
noroot 2021-03-29 17:37:13 +08:00
make 是自动化构建工具,不是编译器。
go 现在用 go mod 管理依赖,go build 执行构建。 所以你的需求是什么? |
12
XIU2 2021-03-29 17:38:57 +08:00
刚回复完就看到你刚发的附言。。。
我只是业余自学自给自足写一些小软件,没折腾过依赖多的项目,所以你的需求我也不懂~ |
13
Jirajine 2021-03-29 17:39:55 +08:00 via Android
go 本身的工具链比较完善,make 也就用来方便一下多平台构建、定义常量等情况,所以 Windows 下继续使用 make 也完全没问题。
|
14
thevita 2021-03-29 17:40:17 +08:00
你需要的是 `go generate`
|
15
JackyCDK 2021-03-29 17:41:35 +08:00
使用 wsl2 (混乱邪恶
|
16
thevita 2021-03-29 17:41:58 +08:00
硬要用 make 的话, ms 的工具链里有 nmake, 不过要单独安装
|
17
BeautifulSoap 2021-03-29 17:42:00 +08:00
lz 你这个需求,不是很复杂的话,为什么不考虑使用 go generate 呢?
如果需求复杂的话其实还不如用 docker,因为你同时维护两个平台的 makefile 是非常耗费心智的 当然,一定想在 windows 下用 make 的话,其实方法也很多,但是核心还是在于,不同平台你的的编译指令会有区别,到头来你还是会回到上面说的维护两个平台各自的 makefile 上了 |
18
HanMeiM 2021-03-29 17:52:59 +08:00
我也没懂,意思是 go 在 windows 上还不能直接跑 go build ?
|
19
zliea 2021-03-29 18:15:19 +08:00
cygwin/mingw ?
|
20
thet 2021-03-29 18:31:49 +08:00
go build
|
21
ouyc OP @BeautifulSoap @thevita 可以,研究下这个。
@ztechstack mingw 这个试了要从 / 找文件,windows 鬼来的 / 目录。如果把 / 这些目录配好,感觉还不如跑 wsl |
22
dongtingyue 2021-03-29 18:32:35 +08:00
go get -u github.com/golang/protobuf/protoc-gen-go
export PATH=$PATH:$GOPATH/bin protoc -I routeguide/ user.proto --go_out=plugins=grpc:routeguide 运行命令后会在 routeguide 目录下生成 user.pb.go 文件 -I 指定导入目录可以指定多次 |
23
ouyc OP |
25
imjamespond2020 2021-03-29 18:48:56 +08:00 via Android 1
cmake 了解下?
|
26
ljpCN 2021-03-29 18:51:09 +08:00
make for Windows
|
27
jasonkayzk 2021-03-29 19:00:01 +08:00 1
“go 编译就用 go 自带的编译器;”
想用 make 就下 cygwin 或者 mingw 自己配置 path ; windows 下有自己的 nmake,通过 Visual Studio 下载即可; 想要在 windows 下编译 proto 文件,可以下载 win 平台对应的插件或者自己编译加 path ; 使用 make 和你是不是 go 、以及 Go 怎么编译没有必然联系; 想了解 Go 怎么编译,可以去看《编译原理》,从生成 AST 开始学习; 总结:文不对题,不知所云; |
28
fenghuang 2021-03-29 19:12:36 +08:00 via Android
习惯写 shell 脚本,用 git 执行
|
29
ouyc OP @fenghuang git bash 吗?目前没试过,在 GoLand 中你是怎么使用的,是配一个 git bash terminal 执行吗
|
30
feelinglucky 2021-03-29 19:35:24 +08:00
兄弟可以看下这个 https://taskfile.dev/
|
32
neoblackcap 2021-03-29 20:11:30 +08:00
本质上不就是跨平台构建嘛,搜构建工具一大把。cmake, xmake 都可以,无非就是看你自己喜欢写什么脚本。类 bazel 的都一大把,动手搜搜就好了。
|
33
Reficul 2021-03-30 00:27:50 +08:00 via Android
bee run 还行,真就是 beego 开发了咩。。
还是直接 wls 写 shell 比较靠谱? |
34
2379920898 2021-03-30 08:48:15 +08:00
beego 自带的一款自动编译工具。
|
35
sxfscool 2021-03-30 08:51:58 +08:00
bee run 笑了
|
36
CNife 2021-03-30 09:40:27 +08:00
其实 Windows 下是有 GNU Make 的,不嫌麻烦可以自己用 MinGW 编译一个,嫌麻烦可以用 scoop 装别人编译好的。
如果 Makefile 里没有涉及 Linux/GNU 下的命令,直接就能运行,如果有的话建议直接上 MinGW 。 |
37
abersheeran 2021-03-30 11:23:22 +08:00
powershell7 跨平台
|