Loading... # 使用 Golang 编译 Linux 可运行文件 Golang(或 Go)是一种开源编程语言,因其简单、高效、并发编程支持而备受欢迎。本文将详细介绍如何使用 Golang 编译生成可以在 Linux 上运行的可执行文件。 ![](https://www.8kiz.cn/usr/uploads/2024/07/1918171741.png) ## 一、安装 Golang ### 1.1 下载 Golang 从 Golang 官方网站下载适合你操作系统的安装包:[Golang 下载页面](https://golang.org/dl/) ### 1.2 安装 Golang #### 在 Ubuntu 上安装: ```sh sudo apt update sudo apt install -y golang ``` #### 在 CentOS 上安装: ```sh sudo yum update sudo yum install -y golang ``` #### 验证安装: ```sh go version ``` 输出类似于: ```sh go version go1.16.3 linux/amd64 ``` ## 二、编写 Golang 程序 ### 2.1 创建工作目录 ```sh mkdir -p ~/go/src/hello cd ~/go/src/hello ``` ### 2.2 编写示例程序 创建 `main.go` 文件并添加以下内容: ```go package main import "fmt" func main() { fmt.Println("Hello, World!") } ``` ## 三、编译 Golang 程序 ### 3.1 本地编译 如果你在 Linux 环境下开发并编译,可以直接使用 `go build` 命令: ```sh go build -o hello main.go ``` 这将在当前目录生成一个名为 `hello` 的可执行文件。 ### 3.2 交叉编译 如果你在非 Linux 环境(如 Windows 或 macOS)下开发,需要编译生成 Linux 可执行文件,可以使用交叉编译功能。 ```sh GOOS=linux GOARCH=amd64 go build -o hello main.go ``` 其中: - `GOOS=linux`:目标操作系统为 Linux - `GOARCH=amd64`:目标架构为 64 位 ### 3.3 编译选项 - `-o <filename>`:指定输出文件的名称。 - `-v`:输出详细的编译信息。 - `-a`:强制重新编译所有包。 - `-ldflags`:设置编译时的链接器参数。 示例: ```sh go build -o hello -v -ldflags "-s -w" main.go ``` 参数解释: - `-s`:去掉符号表信息。 - `-w`:去掉 DWARF 调试信息。 ## 四、运行编译后的可执行文件 ### 4.1 在本地运行 ```sh ./hello ``` 输出: ```sh Hello, World! ``` ### 4.2 在目标 Linux 服务器上运行 1. 使用 `scp` 或 `rsync` 将可执行文件传输到目标 Linux 服务器: ```sh scp hello user@linux_server:/path/to/directory ``` 2. 在目标服务器上运行可执行文件: ```sh ssh user@linux_server cd /path/to/directory chmod +x hello ./hello ``` ## 五、常见问题及解决方案 ### 5.1 编译过程中出现权限问题 确保你有权限在目标目录中创建和修改文件。使用 `sudo` 或切换到具有适当权限的用户。 ### 5.2 交叉编译后无法运行 确保交叉编译的目标架构和操作系统设置正确。使用 `GOOS` 和 `GOARCH` 变量指定正确的目标平台。 ### 5.3 运行时报错缺少依赖库 Golang 编译的可执行文件通常是静态链接的,不依赖外部库。如果出现缺少依赖库的错误,检查是否使用了需要动态链接的 C 库。 ## 六、总结 本文介绍了如何在 Linux 上编译和运行 Golang 程序,涵盖了本地编译和交叉编译的步骤。通过这些步骤,您可以轻松地将 Golang 程序编译成适合 Linux 平台的可执行文件,并在目标服务器上运行。掌握这些技巧,可以提高开发和部署 Golang 应用的效率。 最后修改:2024 年 07 月 13 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏