发布于2026-07-11 阅读(0)
扫一扫,手机访问

go run 快速验证代码这种模式最适合单文件脚本、教学示例或临时测试。它不生成二进制文件,每次运行都会重新编译,用完即走,干净利落。不过有几个硬性前提:
package main,并且包含 func main() 入口函数。hello.go 或 calc.go,但绝不能是 lib.go(那是非 main 包的文件名)。main.go,就运行 go run main.go;如果同时有多个 .go 文件(比如 main.go + utils.go),必须把它们全部列出来:go run main.go utils.go。no Go files in current directory,大概率是当前目录里没有 .go 文件,或者你压根不在源码目录下。go build 生成可执行文件当你需要交付、部署,或者想要一个能反复运行的程序,就得靠 go build 了。生成的二进制文件不含运行时依赖,可以拷走到其他机器上直接运行(当然要注意平台兼容性)。具体用法:
go build main.go 会在当前目录生成一个与源文件同名的可执行文件(Linux/macOS 下叫 main,Windows 下叫 main.exe)。go build -o myapp main.go。cmd/ 目录下有个 main.go,需要先进入那个子目录再 build,或者直接用 go build ./cmd/myapp 指定包路径。cgo(比如调用了 C 库),就可能动态依赖系统的 libc,跨机器运行前最好验证一下。go mod init 管理多文件项目当代码不再是孤零零的一个文件,而是开始引入第三方库(比如 github.com/spf13/cobra),就必须初始化模块了——否则 go run 和 go build 会找不到依赖,或者报 unknown revision。操作起来并不复杂:
go mod init example.com/myapp(模块名可以随便起,只要唯一就行)。go run 或 go build 就会自动把依赖写入 go.mod 并下载缓存。go.sum 文件——它是依赖的校验和快照,一旦被篡改,go build 会拒绝构建。cannot find module providing package xxx,先检查 import 路径拼写是否正确(大小写敏感),再确认对应模块是否已经 go get 过,或者在 go.mod 里有记录。go run,或者把 go.mod 放在了子目录却从外层调用命令。动手之前,养成一个好习惯:先 pwd 看清自己站在哪里,再 ls go.mod main.go 确认关键文件都在。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8