HelloWorld显示Go语言交叉编译的强大20230926

环境介绍

开发环境:windows 10

IDE:goland

实现的目标:

在windows10下编译go,分别在linux centos6和linux centos8上进行运行

具体流程

1.在windows10上建立项目

a. 打开GoLand,选择New Project。

b. 为项目取一个名称,例如HelloWorld,并选择一个存放项目的位置。

c. 选择Go SDK。如果您还没有安装Go SDK,您可以前往

Go官方网站:https://golang.org/dl/下载并安装

2.文件的创建

在GoLand中,您可以右键点击项目名称,选择New -> Go File,然后命名为main.go。

3. 编码

在main.go文件中,写入以下代码:

go 复制代码
package main

import "fmt"

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

4. 本地测试

直接在GoLand中点击运行按钮,或在终端中进入到项目目录,然后运行:

powershell 复制代码
go run main.go

您应该可以看到"Hello, World!"的输出。

5. 为Linux编译

在项目的根目录下,打开终端或命令提示符,输入以下命令:

powershell 复制代码
$env:GOOS="linux"
$env:GOARCH="amd64"
go build -o HelloWorld

设置的环境变量(如$env:GOOS="linux")仅在当前PowerShell会话中有效。当您关闭该PowerShell会话窗口时,

这些设置不再生效。这意味着它们是临时的。

如果您想要永久设置环境变量,需要在Windows的"系统属性"中设置,或者使用PowerShell的持久设置方法。

但是,对于编译Go程序这样的场景,通常只需要临时设置环境变量即可。

6.上传centos后修改权限运行

powershell 复制代码
(base) [pyapp@localhost C_GO]$ chmod +x HelloWorld 
(base) [pyapp@localhost C_GO]$ HelloWorld 
Hello,World!
(base) [pyapp@localhost C_GO]$ cat /etc/redhat-release
CentOS Linux release 8.2.2004 (Core) 
(base) [pyapp@localhost C_GO]$ 
[ICPOSP: /home/icposp/GO_CODE>chmod +x HelloWorld 
[ICPOSP: /home/icposp/GO_CODE>HelloWorld 
Hello,World!
[ICPOSP: /home/icposp/GO_CODE>cat /etc/redhat-release
CentOS release 6.6 (Final)
[ICPOSP: /home/icposp/GO_CODE>

思考

太神奇了,哈哈,在两个不同版本的CentOS上运行了您的Go程序。这正是Go的交叉编译特性的强大之处:您可以在一个平台上为另一个平台编译,然后在目标平台上轻松地运行它。.c的helloworld在centos6和centos7上编译,都不能交叉运行,太厉害了.这就是为什么Go在云计算、微服务和容器化应用中如此受欢迎的原因之一。您可以在开发机器上为多种目标平台编译程序,并确信它们将在这些平台上正常工作。不过,值得注意的是,虽然Go确实提供了强大的交叉编译支持,但如果您的Go程序依赖于C语言库或其他外部资源,那么交叉编译可能会变得更加复杂。

相关推荐
whyfail3 分钟前
前端学 Spring Boot(8):接口为什么越用越慢?
前端·spring boot·后端
麻瓜老宋37 分钟前
AI开发C语言应用按步走,表达式计算器calc的第二十三步,多行输入、进制输出、错误恢复、常量折叠、配置加载等
c语言·开发语言·atomcode
q567315231 小时前
企业级 HTTP 代理采购选型:技术评估清单 15 项
开发语言·网络·爬虫·网络协议·http·隧道ip·代理ip
Muscleheng1 小时前
Spring Boot 3.x 集成 DeepSeek 实现 Function Calling(工具调用)
人工智能·spring boot·后端·ai·spring ai·deepseek
@航空母舰1 小时前
SpringBoot通过Map实现天然的策略模式
java·spring boot·后端
天天进步20152 小时前
Python全栈项目--智能办公自动化系统
开发语言·python
IT_陈寒2 小时前
JavaScript的this又双叒叕让我怀疑人生了
前端·人工智能·后端
陈随易2 小时前
MCP协议第5次更新,从打电话到微信聊天的巨大变革
前端·后端·程序员
65岁退休Coder2 小时前
LangChain v1.3.4 笔记 - 06 RAG 检索增强生成
后端
cm04Z9c912 小时前
C#摸鱼实录——IoC与DI案例详解
开发语言·c#