Ubuntu中Golang编译生成的二进制文件默认位置及自定义方法
在Ubuntu系统中,使用go build
命令编译Golang项目时,默认会将二进制文件生成在当前工作目录下。这里的“当前工作目录”指执行go build
命令时终端所在的目录。
例如,若你的项目源代码位于/home/user/projects/hello
目录,且在该目录下执行go build
,则编译生成的二进制文件会直接出现在/home/user/projects/hello
目录中。二进制文件的名称默认与项目目录名或main
包所在文件名一致(如项目目录名为hello
,则二进制文件名为hello
;若源文件为main.go
,则可能命名为main.out
,但更常见的是与目录名同名)。
若需将二进制文件输出到指定目录或修改文件名,可通过go build
命令的-o
(output)选项实现,具体格式为:
go build -o <输出路径/文件名> <源文件或包路径>
。
/usr/local/bin
目录下,并命名为myapp
,命令为:go build -o /usr/local/bin/myapp main.go
/usr/local/bin/myapp
(需确保当前用户对/usr/local/bin
有写入权限,否则需用sudo
提升权限)。bin
目录bin
目录(用于存放编译产物),然后通过-o
选项将二进制文件输出到该目录。例如:go build -o bin/myapp ./cmd/server
./cmd/server
包编译生成的可执行文件保存到项目根目录下的bin
文件夹中(需提前创建bin
目录,可使用mkdir -p bin
命令)。GOOS
(目标操作系统)、GOARCH
(目标架构)环境变量和-o
选项。例如:GOOS=windows GOARCH=amd64 -o bin/myapp.exe ./main.go
myapp.exe
,并保存到项目根目录下的bin
目录中。/usr/local/bin
),需确保当前用户有足够的权限(可使用sudo
命令,如sudo go build -o /usr/local/bin/myapp main.go
)。bin
目录添加到.gitignore
文件中(如添加bin/
规则),以保持仓库整洁。