gobuilder,免写脚本,一键编译go项目到多平台(支持CGO)

2024-06-14 12:12

本文主要是介绍gobuilder,免写脚本,一键编译go项目到多平台(支持CGO),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文档地址:https://github.com/gvcgo/gobuilder/blob/main/docs/README_CN.md

项目地址:https://github.com/gvcgo/gobuilder

何为 gobuilder?

gobuilder 是一个用于编译 go 项目的工具。它功能上与 go build 类似,但是做了增强。能够同时编译到不同平台和架构 (支持 CGO 跨平台编译),不需要单独写脚本。特别适合于需要编译到多个平台,并需要对 windows 误报病毒现象进行修复的情况。

gobuilder产生的契机是,作者的开源项目vmr需要跨平台编译,而且Windows用户反馈发布的binary会被windows defender误报病毒,这一点go语言官方也做了相关解释,但是没有给出特别好的解决办法。因此,作者开发了gobuilder工具,用于支持这些常见功能,方便需要一键跨平台编译的项目。

功能特点

  • 同时编译到 go build 支持的任何一个或者多个平台;
  • 使用 xgo 对 CGO 进行交叉编译 (可选);
  • 使用 UPX 对 binary 进行压缩 (可选);
  • 使用 garble 对 windows 可执行文件进行混淆 (可选);
  • 使用 osslsigncode 对 windows 可执行文件进行数字签名,消除 windows defender 误报病毒 (可选);
  • 自动对 binary 进行 zip 压缩打包 (可选);
  • 在 go 项目下的任何文件夹中,都可以一键编译该项目;
  • 记住编译参数,后续任何时间再编译时,无需要输入任何参数;
  • 无需编写任何脚本;
  • 整洁,会在项目主目录下创建 build 文件夹,编译配置文件 build.json 以及二进制文件、压缩文件均存放在此处;

这篇关于gobuilder,免写脚本,一键编译go项目到多平台(支持CGO)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1060375

相关文章

Python脚本实现自动删除C盘临时文件夹

《Python脚本实现自动删除C盘临时文件夹》在日常使用电脑的过程中,临时文件夹往往会积累大量的无用数据,占用宝贵的磁盘空间,下面我们就来看看Python如何通过脚本实现自动删除C盘临时文件夹吧... 目录一、准备工作二、python脚本编写三、脚本解析四、运行脚本五、案例演示六、注意事项七、总结在日常使用

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

Go语言实现将中文转化为拼音功能

《Go语言实现将中文转化为拼音功能》这篇文章主要为大家详细介绍了Go语言中如何实现将中文转化为拼音功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 有这么一个需求:新用户入职 创建一系列账号比较麻烦,打算通过接口传入姓名进行初始化。想把姓名转化成拼音。因为有些账号即需要中文也需要英

Go语言使用Buffer实现高性能处理字节和字符

《Go语言使用Buffer实现高性能处理字节和字符》在Go中,bytes.Buffer是一个非常高效的类型,用于处理字节数据的读写操作,本文将详细介绍一下如何使用Buffer实现高性能处理字节和... 目录1. bytes.Buffer 的基本用法1.1. 创建和初始化 Buffer1.2. 使用 Writ

Python 中 requests 与 aiohttp 在实际项目中的选择策略详解

《Python中requests与aiohttp在实际项目中的选择策略详解》本文主要介绍了Python爬虫开发中常用的两个库requests和aiohttp的使用方法及其区别,通过实际项目案... 目录一、requests 库二、aiohttp 库三、requests 和 aiohttp 的比较四、requ

SpringBoot项目启动后自动加载系统配置的多种实现方式

《SpringBoot项目启动后自动加载系统配置的多种实现方式》:本文主要介绍SpringBoot项目启动后自动加载系统配置的多种实现方式,并通过代码示例讲解的非常详细,对大家的学习或工作有一定的... 目录1. 使用 CommandLineRunner实现方式:2. 使用 ApplicationRunne

解决Cron定时任务中Pytest脚本无法发送邮件的问题

《解决Cron定时任务中Pytest脚本无法发送邮件的问题》文章探讨解决在Cron定时任务中运行Pytest脚本时邮件发送失败的问题,先优化环境变量,再检查Pytest邮件配置,接着配置文件确保SMT... 目录引言1. 环境变量优化:确保Cron任务可以正确执行解决方案:1.1. 创建一个脚本1.2. 修

使用IntelliJ IDEA创建简单的Java Web项目完整步骤

《使用IntelliJIDEA创建简单的JavaWeb项目完整步骤》:本文主要介绍如何使用IntelliJIDEA创建一个简单的JavaWeb项目,实现登录、注册和查看用户列表功能,使用Se... 目录前置准备项目功能实现步骤1. 创建项目2. 配置 Tomcat3. 项目文件结构4. 创建数据库和表5.

Go Gorm 示例详解

《GoGorm示例详解》Gorm是一款高性能的GolangORM库,便于开发人员提高效率,本文介绍了Gorm的基本概念、数据库连接、基本操作(创建表、新增记录、查询记录、修改记录、删除记录)等,本... 目录1. 概念2. 数据库连接2.1 安装依赖2.2 连接数据库3. 数据库基本操作3.1 创建表(表关

python写个唤醒睡眠电脑的脚本

《python写个唤醒睡眠电脑的脚本》这篇文章主要为大家详细介绍了如何使用python写个唤醒睡眠电脑的脚本,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 环境:win10python3.12问题描述:怎么用python写个唤醒睡眠电脑的脚本?解决方案:1.唤醒处于睡眠状