Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Go-包管理-go build(一)

Go-包管理-go build(一)

原创
作者头像
堕落飞鸟
发布于 2023-04-22 23:43:29
发布于 2023-04-22 23:43:29
69400
代码可运行
举报
文章被收录于专栏:飞鸟的专栏飞鸟的专栏
运行总次数:0
代码可运行

go build是Go语言中用于构建可执行程序的命令。它会将指定的Go源代码编译成机器码,并将生成的可执行文件输出到当前目录中。

命令格式

go build命令的基本格式如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
go build [可选标记] [可选参数] [包名]

其中,[可选标记]表示命令选项,[可选参数]表示命令参数,[包名]表示要构建的Go包的名称。如果没有指定[包名],则默认为当前目录下的Go包。

命令选项

go build命令的常用选项如下:

  • -o output:指定输出文件名,默认输出文件名为可执行文件所在目录的名称。
  • -i:安装依赖包。
  • -v:显示编译过程中的详细信息。
  • -tags tag:指定要编译的标签。
  • -ldflags flags:指定链接选项。

命令参数

go build命令的常用参数如下:

  • ./...:构建当前目录及其所有子目录下的所有Go包。
  • main.go:构建指定的Go源代码文件。

示例

构建可执行程序

假设有一个名为hello.go的Go源代码文件,内容如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package main

import "fmt"

func main() {
    fmt.Println("Hello, world!")
}

可以使用以下命令将该源代码文件编译成可执行程序:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
go build hello.go

该命令会在当前目录下生成一个名为hello的可执行文件。运行该可执行文件,可以看到输出Hello, world!

构建指定目录下的所有Go包

假设有一个名为example的目录,该目录下有多个子目录,每个子目录下都有一个或多个Go源代码文件。可以使用以下命令构建example目录及其所有子目录下的所有Go包:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
go build ./...

该命令会在每个Go包所在目录下生成一个名为该目录名称的可执行文件。例如,如果example目录下有一个名为main.go的源代码文件,那么该命令会在example目录下生成一个名为example的可执行文件。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Go-包管理-go build(二)
可以使用-o选项指定生成的可执行文件的输出文件名。例如,以下命令将hello.go编译成一个名为myhello的可执行文件:
堕落飞鸟
2023/04/23
3280
Go 快速入门篇(二):项目工程管理示例(基于 Go Modules)
在上一篇教程中,学院君带着大家搭建起了本地开发环境,并且编写了第一个 Go 程序 —— 向世界问好。
学院君
2023/03/03
1.4K0
Go 快速入门篇(二):项目工程管理示例(基于 Go Modules)
Go 项目代码布局
Go 语言的创世项目其实就是 Go 语言项目自身,是全世界第一个 Go 语言项目。
贾维斯Echo
2023/10/18
2940
Go-包管理-go install
在Go中,我们使用import关键字来导入其他包中的代码。当我们使用import导入一个包时,Go会自动到$GOPATH环境变量指定的目录中寻找对应的包。如果找到了对应的包,Go就会将该包编译成一个静态库,并将其保存在$GOPATH/pkg目录中。这样,我们就可以在我们的代码中使用该包中的代码了。
堕落飞鸟
2023/04/23
7350
Go 语言基础入门教程 —— Go 项目基本工程管理示例
在上一篇教程中,学院君带着大家搭建起了本地开发环境,并且编写了第一个 Go 程序,向世界问好。不过在实际开发过程中,直接调用编译器进行编译和链接(调用 go build 或 go run 命令)的场景很少,因为在项目工程中不会简单到只有一个源文件,往往有很多源文件并且源文件之间会有相互依赖的关系,如果这样一个文件一个文件逐步编译,那简直无法想象。
学院君
2019/08/09
1.2K0
Go 语言基础入门教程 —— Go 项目基本工程管理示例
Go 语言基础入门教程 —— 第一个 Go 程序
使用 Go 语言之前,首先要安装 Go。Go 为 Linux、Mac、Windows 等不同的平台分别提供了相应的安装包:https://golang.google.cn/doc/install,根据自己的操作系统选择对应的安装包点击下载,然后按照引导流程安装即可。
学院君
2019/08/09
8100
原来go build命令有这么多学问
简单来说有两个go文件组成的Demo,分别是hello.go和main.go,其中main.go中的main函数需要引用hello.go中的printHello()函数,但是在编译项目的时候突然报错了,代码和文件关系如下:
闫同学
2024/09/09
8080
实验(五)第二部分:指定动态库
用-o libmin.so选项链接生成动态库文件libmin.so(而非链接生成可执行文件)
esse LL
2023/03/26
3240
实验(五)第一部分:指定静态库
使用ll查看当前目录下的文件,编译成功后可以看到新产生的 max.o 文件,显然这是本次编译得到的目标程序。
esse LL
2023/03/26
4800
《快学 Go 语言》第 16 课 —— 包管理 GOPATH 和 Vendor
到目前位置我们一直在编写单文件代码,只有一个 main.go 文件。本节我们要开始朝完整的项目结构迈进,需要使用 Go 语言的模块管理功能来组织很多的代码文件。
老钱
2019/10/25
1.2K1
Go语言实战笔记(一)| Go包管理
这本是In Action系列的书籍,这个系列做研发的都知道,在研发届评价很多,很多新的技术、语言等都会有一本实战的书籍。既然是实战,那么这本书假设了他的读者有了一定的基础,比如这本书的读者要有一定的Go语言基础,比如Go开发环境搭建,Go的内置类型、Go的常用关键字等等。
飞雪无情
2018/08/28
6380
Go语言学习系列——第一个 Go 程序——【坚果派-红目香薰】
作者简介:大数据领域优质创作者、CSDN博客专家 、阿里云博客专家、华为云课堂认证讲师、华为云社区云享专家、坚果派社区成员、具有10余年横向开发经验,全国教师技能大赛获奖教师,现从事于大学计算机领域教育工作。 主要内容:人工智能与大数据、Java、Python、C#、PHP、ASP.NET、ArkTS、FAQ、简历模板、学习资料、面试题库、就业指导等。 初心目标:持续输出,为技术人创造更多的价值。
红目香薰
2025/03/05
660
Go语言学习系列——第一个 Go 程序——【坚果派-红目香薰】
Go程序开发快速入门
将编写的代码存储到 project/main/hello.go 文件中,其中 .go 是 golang编程语言可识别的文件后缀
李昂君
2021/12/24
8300
Go程序开发快速入门
golang-101-hacks(4)——go build”和 go install
查看当前$GOPATH目录结构,只展开src源码目录 Let's tidy up the$GOPATH directory and only keep Go source code files left over:
羊羽shine
2019/05/29
4080
python之程序打包
setup(name='Hello',version='1.0',description='A simple example',author='Magnus Lie Hetland',py_modules=['hello'])
py3study
2020/01/06
8610
Go-包管理-go clean
Go是一门支持模块化开发的语言,它提供了一种包管理机制来方便我们管理和复用代码。在开发过程中,我们经常需要清理一些临时文件或编译生成的文件,这时就需要用到go clean命令。
堕落飞鸟
2023/04/23
5860
简述Go以及搭建Go环境
Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。
新人小试
2020/02/25
1.3K0
go build命令(go语言编译命令)完全攻略
Go语言的编译速度非常快。Go 1.17 版本后默认利用Go语言的并发特性进行函数粒度的并发编译。
IT工作者
2021/12/16
31K0
GoLand激活码2022(2022Goland最新激活码)
KLMILO9UY9-eyJsaWNlbnNlSWQiOiJHT1VHRExEVVVGIiwibGljZW5zZWVOYW1lIjoi5rC45LmF5r+A5rS7IHd3d8K3YWppaHVvwrdjb20iLCJhc3NpZ25lZU5hbWUiOiIiLCJhc3NpZ25lZUVtYWlsIjoiIiwibGljZW5zZVJlc3RyaWN0aW9uIjoiIiwiY2hlY2tDb25jdXJyZW50VXNlIjpmYWxzZSwicHJvZHVjdHMiOlt7ImNvZGUiOiJQQyIsInBhaWRVcFRvIjoiMjAyMi0xMC0yMiIsImV4dGVuZGVkIjpmYWxzZX0seyJjb2RlIjoiUFBDIiwicGFpZFVwVG8iOiIyMDIyLTEwLTIyIiwiZXh0ZW5kZWQiOnRydWV9LHsiY29kZSI6IlBXUyIsInBhaWRVcFRvIjoiY1dsGw9l2T8ENH3LSXOLgQZerqGL9O8MKw4n0Tx0da3f73PUo6yjRKxr3AVkwYUiW5VLXpF2nWIPSk+6Wd7Zyq31RTFbZTrY/OJE8++zXHj9biJG8mcCOnEwTgOZYgwEUzjjLw27Dkl9gq5vBcYEo1F4lr/lWSc6wlzCY48Syvoni9xAE9cFHDkUHNA7muTetqLem8QxHEtaHenbwBhdA803AIpGLYnZ0kMwjPWNzEx+Awc768oxZ6BoFvKtOqe3fW5jlL0yCIGYz/RE9RixVK7TBNVBFxm/PLOWLYlQytw5ECk3EqwDoszcoqMYAYZXaT45yopeQ==-MIIETDCCAjSgAwIBAMjAyMi0xMC0yMiIsImV4dGVuZGVkIjp0cnVlfSx7ImNvZGUiOiJQU0kiLCJwYWlkVXBUbyI6IjIwMjItMTAtMjIiLCJleHRlbmRlZCI6dHJ1ZX0seyJjb2RlIjoiUENXTVAiLCJwYWlkVXBUbyI6IjIwMjItMTAtMjIiLCJleHRlbmRlZCI6dHJ1ZX1dLCJtZXRhZGF0YSI6IjAxMjAyMjA5MjNQU0FNMDAwMDA1IiwiaGFzaCI6IjM4MTM3NzQ2LzA6LTg5OTkzNTkwOCIsImdyYWNlUGVyaW9kRGF5cyI6NywiYXV0b1Byb2xvbmdhdGVkIjpmYWxzZSwiaXNBdXRvUHJvbG9uZ2F0ZWQiOmZhbHNlfQ==-kqXUG+MjwwlLjgIBDTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTIwMTAxOTA5MDU1M1oXDTIyMTAyMTA5MDU1M1owHzEdMBsGA1UEAwwUcHJvZDJ5LWZyb20tMjAyMDEwMTkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDCP4uk4SlVdA5nuA3DQC+NsEnZS9npFnO0zrmMWcz1++q2UWJNuGTh0rwi+3fUJIArfvVh7gNtIp93rxjtrQAuf4/Fa6sySp4c32MeFACfC0q+oUoWebhOIaYTYUxm4LAZ355vzt8YeDPmvWKxA81udqEk4gU9NNAOz1Um5/8LyR8SGsSc4EDBRSjcMWMwMkYSauGqGcEUK8WhfplsyF61lKSOFA6VmfUmeDK15rUWWLbOMKgn2cxFA98A+s74T9Oo96CU7rp/umDXvhnyhAXSukw/qCGOVhwKR8B6aeDtoBWQgjnvMtPgOUPRTPkPGbwPwwDkvAHYiuKJ7Bd2wH7rAgMBAAGjgZkwgZYwCQYDVR0TBAIwADAdBgNVHQ4EFgQUJNoRIpb1hUHAk0foMSNM9MCEAv8wSAYDVR0jBEEwP4AUo562SGdCEjZBvW3gubSgUouX8bOhHKQaMBgxFjAUBgNVBAMMDUpldFByb2ZpbGUgQ0GCCQDSbLGDsoN54TATBgNVHSUEDDAKBggrBgEFBQcDATALBgNVHQ8EBAMCBaAwDQYJKoZIhvcNAQELBQADggIBAB2J1ysRudbkqmkUFK8xqhiZaYPd30TlmCmSAaGJ0eBpvkVeqA2jGYhAQRqFiAlFC63JKvWvRZO1iRuWCEfUMkdqQ9VQPXziE/BlsOIgrL6RlJfuFcEZ8TK
PyCharm-superman
2022/12/12
8.5K39
GoLand激活码2022(2022Goland最新激活码)
GCC工具的具体使用
每一步都需要使用不同的工具,比如源代码需要借助编译工具翻译成汇编代码,汇编代码需要借助汇编器翻译成目标代码,最后还要借助连接器帮忙整理汇总, 那么这些个工具集合到一块就叫做工具链
乱码三千
2021/08/24
6080
推荐阅读
相关推荐
Go-包管理-go build(二)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验