Goframe开发工具gf的编译方法
#### 这里主要说明自行编译的方法
---
* [点击下载源码](https://github.com/gogf/gf) ,这里最好放在 `~/go/src/github/`下,方便导入。
* 根据自己的需要修改数据库依赖,文件/cmd/gf/internal/cmd/cmd\_gen\_dao.go的import。sqlite 和oracle 的驱动需要安装cgo环境。
* 进入到gf cli的源码目录/cmd/gf 编译
`# go build main.go`或者 `gf build main.go`
**这里说明几个需要注意的事项:**
1. 编译的时候最好使用以前编译的gf编译,用 `go build`不能写入gf的信息
```
GoFrame CLI Tool v2.1.4, https://goframe.org
GoFrame Version: v2.1.0 in current go.mod
CLI Installed At: /home/xjc/go/src/github.com/gogf/gf/cmd/gf/gf
Current is a custom installed version, no installation information.
```
用 `gf build`就有编译信息了
```
GoFrame CLI Tool v2.1.4, https://goframe.org
GoFrame Version: v2.1.0 in current go.mod
CLI Installed At: /usr/bin/gf
CLI Built Detail:
Go Version: go1.19.1
GF Version: v2.1.4
Git Commit: none
Build Time: 2022-09-20 10:24:57
```
这里的Git Commit没有内容,主要是懒得去加。 Git Commit怎么用go语言取值没有去找,比较直接的方法是修改这个文件 `github.com/gogf/gf/cmd/gf/internal/cmd/cmd_version.go`
```
if info.Git == "" {
info.Git = "none"
}
```
意思是如果这个值为空,就为none,最直接的就是把none改为Git Commit的值。
---
2. 如果使用sqlite和oracle数据库,必需使用cgo环境编译。
`# CGO_ENABLED=1 go build main.go`
---
3. 涉及gf编译的文件有以下几个:
```
github.com/gogf/gf/cmd/gf/internal/cmd/cmd_gen_dao.go
github.com/gogf/gf/cmd/gf/internal/cmd/cmd_version.go
github.com/gogf/gf/os/gbuild/gbuild.go
```
- 共 0 条回复
- 需要登录 后方可回复, 如果你还没有账号请点击这里注册。
wiseAI
✨ 梦初醒 茅塞开
- 不经他人苦,莫劝他人善。
- 能量足,心态稳,温和坚定可以忍。
- 辛苦决定不了收入,真正决定收入的只有一个,就是不可替代性。
- 要么忙于生存,要么赶紧去死!
- 内心强大到混蛋,比什么都好!
- 规范流程比制定制度更重要!
-
立志需要高远,但不能急功近利;
行动需要迅速,却不可贪图速成。 - 不要强求人品,要设计高效的机制。
-
你弱的时候,身边都是鸡零狗碎;
你强的时候,身边都是风和日丽。 - 机制比人品更可靠,契约比感情更可靠。
- 合作不意味着没有冲突,却是控制冲突的最好方法。
- 误解是人生常态,理解本是稀缺的例外。
- 成功和不成功之间,只差一次坚持!
- 祁连卧北雪,大漠壮雄关。
- 利益顺序,过程公开,机会均等,付出回报。
