首页 > 其他分享 >golang交叉编译

golang交叉编译

时间:2024-11-12 18:30:35浏览次数:1  
标签:gcc 交叉 ProjectName golang 编译 version BUILD linux build

交叉编译需要linux环境

windows

  • 安装编译器

    apt install gcc-mingw-w64
    
  • 编译指令

windows:
	CGO_ENABLED=1 \
	GOOS=windows \
	GOARCH=amd64 \
	CC=x86_64-w64-mingw32-gcc \
	go build \
	-buildmode=c-shared \
	-ldflags \
		" -s -w \
		-X '${ProjectName}/version.BuildTime=${BUILD_TIME}' \
		-X '${ProjectName}/version.Version=${Version}' \
		-X '${ProjectName}/version.Author=${BUILD_AUTHOR}' \
		-X '${ProjectName}/version.Hash=${BUILD_HASH}' \
	" \
	-o build/bin/windows/${OutAppName}.dll

ARM64

  • 安装编译器

    apt install gcc-aarch64-linux-gnu
    
  • 编译指令

linux-arm64:
	CGO_ENABLED=1 \
	GOOS=linux \
	GOARCH=arm64 \
	CC=aarch64-linux-gnu-gcc \
	go build \
	-buildmode=c-shared \
	-ldflags \
		" -s -w \
		-X '${ProjectName}/version.BuildTime=${BUILD_TIME}' \
		-X '${ProjectName}/version.Version=${Version}' \
		-X '${ProjectName}/version.Author=${BUILD_AUTHOR}' \
		-X '${ProjectName}/version.Hash=${BUILD_HASH}' \
	" \
	-o build/bin/linux/arm64/lib${OutAppName}.so

标签:gcc,交叉,ProjectName,golang,编译,version,BUILD,linux,build
From: https://www.cnblogs.com/jiftle/p/18542431

相关文章

  • Golang 编译windows应用程序
    因为我们更喜欢在Linux上开发程序,所以生成交叉编译器,以便在Linux上交叉编译出windows程序。安装minGW:在Linux上运行gcc交叉编译生成windows程序我们用到Cgo,因此需要安装C语言交叉编译器sudoapt-getinstallgcc-mingw-w64下载Go语言的源代码gitclonehttps://github.com......
  • BuildRoot 中编译 opencpn 总结
    目录1:升级cmake版本3.24.0-rc52:设置交互编译环境变量3:编译wxWidgets-3.2.64:编译opencpn需要依赖的lib 5:编译opencpn1:升级cmake版本3.24.0-rc5sudobashcmake-3.22.1-linux-x86_64.sh--prefix=/usr--skip-license更改PATH路径corey@fcyswrd-15:~/opencpn/......
  • golang 实现比特币内核:公钥的 SEC 编码格式详解
    比特币作为区块链的一个应用,它建立在分布式系统之上,‘节点’遍布全球。为了使所有节点协同工作并作为一个整体系统运行,需要保持所有节点同步在相同的状态中,也就是说节点之间需要频繁通信,并且相互交换大量数据消息。这要求在网络上传输的消息或数据要使用某种格式编码,以确保......
  • 如何正确导入mapstruct,同时避免编译时mapstruct与lombok冲突
    本文介绍编译时产生的冲突,导包时期产生的冲突请劳驾查找其他解决方法一般情况下只需要按照官网的导入即可,但如果同时使用了lombok,则需要小心。详细信息可以查看官网文档:MapStruct1.5.5.Final集成lombok注意:在编译测试的时候,一定先清理再编译。这样可以解决80%的报错问题......
  • gcc-13.2 grpc 编译错误(absl-cpp build fails)
    使用gcc-13.2编译absl-cpp会出现以下报错:third_party/abseil-cpp/absl/strings/internal/str_format/extension.h:34:6:warning:elaborated-type-specifierforascopedenummustnotusethe‘class’keyword  34|enumclassFormatConversionChar:uint8_t; ......
  • libwebp在windows下构建及编译运行
    因为正在进行WEBP图像的学习,因此有必要对WEBP的官方实现——libwebp进行本地构建和编译,以方便对标准及代码的理解。下面记录一下,在本地Windows电脑上,构建并编译libwebp的过程。步骤一:下载源码首先,获取libwebp的最新源码:从官方Git仓库克隆:gitclonehttps://chromium......
  • ESP32开发__搭建VSCode开发环境试编译项目
    目录1.概述2.安装相关必要插件3.VSCode及相关扩展件安装3.1.VSCode3.2.ESP-IDFVisualStudioCodeExtension3.3.ConfigureESP-IDF4.Demo试运行4.1.打开工程4.2.连接设备并配置端口4.3.配置工程4.3.1. 设置“目标”芯片4.3.2.menuconfig配置工程选......
  • gcc 1.c和g++ 1.c编译阶段有什么区别?如何知道g++编译默认会定义_GNU_SOURCE?
    gcc1.c和g++1.c编译阶段有什么区别?借用 gcc1.c和g++1.c有什么区别? 的示例代码,以汇编代码为比较目标,再经过汇编,最后生成ELF文件,三个过程结果均无差异,这个阶段充分证明了c和c++是多么相似。编译到汇编gcc-S1.c-o1.sg++-S1.c-o11.s .file "1.c"......
  • golang异常处理trycatch,确保系统不崩溃
    packagemainimport(  "fmt"  "os"  "os/signal"  "syscall")functest0(){  deferfunc(){    ifr:=recover();r!=nil{//捕获panic      fmt.Printf("CaughtintryCatch:%v\n&q......
  • 在VMware已安装的CentOS7.9上编译安装mysql5.6
    VMware已安装的CentOS7.9上编译安装mysql5.6目录1、安装依赖2、下载MySQL源码3、解压源码包4、编译MySQL4.1、编译前,cmake生成Makefile4.2、编译MySQL5、安装MySQL6、配置MySQL6.1、创建MySQL的用户和组6.2、创建数据目录并设置权限6.3、初始化MySQL数据库7、......