【confluent-kafka-go交叉编译】MacOS编译linux可执行文件

Golang编译使用confluent-kafka-go库的项目报错:undefined reference to `__imp__wassert‘ 找到GOPATH\pkg\mod\github.com\confluentinc\confluent-kafka-go@v1.9.2\kafka\build_windows.go 增加 -lmsvcr110。原因是编译这个库的时候导致的,因为此库用到了cgo,因此需要设置CGO_ENABLED=1。在C:\Windows\System32 目录下找到msvcrXX.dll,比如如下目录。然后再次编译就不会报这个错误了,但是会报一个新的错误。经检查代码逻辑这个指针是有赋值的。最后在CSDN上搜到了解决方法。 阅读详情

背景

由于引入了github.com/confluentinc/confluent-kafka-go/kafka,需要在macos上面编译出linux的可执行文件。

操作

  1. 首先在macos上:
    执行如下指令:
go get -tags musl github.com/confluentinc/confluent-kafka-go/kafka
brew install FiloSottile/musl-cross/musl-cross
brew install librdkafka pkg-config
brew install librdkafka 
CGO_ENABLED=1 GOOS=linux  GOARCH=amd64  CC=x86_64-linux-musl-gcc  CXX=x86_64-linux-musl-g++ go build -tags musl
  1. 然后在待执行二进制的linux设备上:
    下载 https://musl.libc.org/releases/musl-1.2.3.tar.gz 到linux设备上,然后执行如下指令:
tar -zxvf musl-1.2.3.tar.gz
cd musl-1.2.3
./configure && make install

当当当当~然后执行二进制就可以啦

cgo静态编译不能用glibc,用musl go静态编译,musl 阅读详情

相关推荐

Rust 在 Windows 环境下交叉编译其他操作系统可执行文件的详细指南

本文详细介绍了如何在Windows环境下使用Rust进行交叉编译,生成能在LinuxmacOS等系统上运行的程序。首先讲解了交叉编译的概念和必要性,然后分步骤指导搭建基础环境,包括Rust安装、工具链配置等。重点演示了LinuxmacOS交叉编译过程,包括目标平台选择、工具链安装、链接器配置等关键操作,并提供了常见问题解决方案。此外还推荐了自动化工具cross和GitHub Actions来简化流程。文章强调从Linux静态链接(musl)开始尝试,逐步扩展到其他平台,帮助开发者实现"一次编

北京锋通科技有限公司的技术blog 1645

Go编译报错“cgo: C compiler “x86_64-linux-musl-gcc“ not found:”

报错信息:cgo: C compiler “x86_64-linux-musl-gcc” not found: exec: “x86_64-linux-musl-gcc”: executable file not found in $PATH 带CGO交叉编译,CGO_ENABLED必须开启。这也就需要辅助编译器来帮我们实现交叉编译了。 如果你是mac平台,可以用这个工具 FiloSottile/musl-cross/musl-cross 直接通过brew安装就可以使用 1. brew install F

qq_38696833的博客 5419

【信息科学与工程学】【数据中心】第三十五篇 云计算数据中心的学科知识04

编号学科(课程)核心知识点在云计算/云存储/云网络/云安全/云MaaS中的作用代表教材/资料/论文 + 数学方程式列表工业界应用D1421​云原生数据库:TiDB​HTAP(混合事务/分析处理)、分布式SQL、水平扩展、强一致(Raft)、自动故障恢复、与MySQL兼容、TiFlash列式引擎提供弹性扩展的分布式数据库;支撑高并发在线交易与实时分析教材:《TiDB in Action》PingCAP(2020) 论文:《TiDB: A Raft-based HTAP Database》(2017)

weixin_49199313的博客 158

含有CGO代码的项目如何实现跨平台编译

含有CGO代码的项目如何实现跨平台编译

shelutai的博客 962

Mac OS 安装 CGO 交叉编译环境 x86_64-linux-gnu-gcc

Mac OS 安装 CGO 交叉编译环境 x86_64-linux-gnu-gcc,解决 CGO 编译难题。

shida's blog 4245

rust windows 交叉编译_Rust交叉编译分享

时间过得好快,转眼间2020年了,想起第一次接触rust的时候还是2019年7月底。当时真是惊艳到我了,于是就走上了不归路。rust特性这里就不多说什么了,官网,社区,知乎多的是介绍和资源,再说我rust水平也没多高。最近一段时间一直用rust写东西,主要是游戏服务器相关的东西,偶尔的机会,现在能让我用rust在工作当中,这tm把老夫给高兴坏了,那不tm整起来?一顿啪啪啪,把之前写的加上优化调优,...

weixin_39851408的博客 878

confluent-kafka-go依赖库编译体验优化

Go社区主流Kakfa客户端简要对比:https://tonybai.com/2022/03/28/the-comparison-of-the-go-community-leading-kakfa-clients/​ 在项目中使用了gokafkaconfluent-kafka-gogo run运行正常。因为开发环境是MacOS,部署环境是基于centos的docker镜像使用二进制运行,在使用。为了避免环境的影响以及本机安装依赖库的繁琐,选择了通过在docker镜像进行打包来规避。

小微程序 2180

Rust 交叉编译

Rust - 交叉编译安装链接器rustup 配置编译 安装链接器 根据你的目标平台自己装一个就好。 1.1 Mac: 通过 brew 安装 musl-cross 工具 来专门编译linux 的工具链。 $ brew install FiloSottile/musl-cross/musl-cross $ brew install mingw-w64 1.2 Windows:通过安装 mingw-w64 来专门编译linux 的工具链。 rustup target add x86_64-unk

清淡的咸菜的博客 2268

rust windows 交叉编译_交叉编译问题,求指教

< 返回版块reison1218发表于 2020-04-10 17:00Tags:交叉编译最近项目写得差不多了,之前用交叉编译工具cross,还挺好用的,但最近发现一个问题,cross无法识别本地lib,path是错的,导致报错:找不到/tools/cargo.toml. 其实正确的路径是在用户目录下,怎么交叉编译的时候变成在/下面了.再尝试解决后无果,干脆不用cross了,自己去下载相关工...

weixin_35094408的博客 1253

【Rust交叉编译】在x86_64架构下交叉编译aarch64-linux-musl版的rust-opencv

在x86_64架构的Ubuntu系统上,纯静态编译aarch64平台的rust-opencv,以方便在嵌入式设备上移植。系统:Ubuntu 24.04,架构:x86_64,可使用WSL,或者Docker,本次使用Docker。

哈哈哈哈哈哈哈 1034

【rust】12、编译linux x86 目标

rust 编译linux x86 目标

呆呆的猫的博客 2118

x86_64 arm制linux-gcc,自制交叉编译工具链接:自己编译一个arm-linux-gcc

10.编译用于编译glibc的gcc解压gcc-linara,cd到源码目录mkdir buildcd build../gcc-linaro-4.8-2013.10/configure --prefix=/usr/local/arm-linux--build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=arm-linux-gnueabi --...

weixin_32101285的博客 646

windows上交叉编译go语言为linux可执行程序

windows上交叉编译go语言为linux可执行程序 交叉编译 在一个平台上生成另一个平台可执行的文件,就叫做交叉编译。 一个cpu体系可以有不同的操作系统,一个操作系统也可以使用不同的架构平台。 有了交叉编译,我们在windows上写的程序,也可以生成在linux运行的二进制程序,可以说写一次代码,可以各个平台运行。 go 通过使用go version 可以查看当前go的版本 go version go1.13.1 windows/amd64 笔者的当前环境是go1.13.1 目前交

梨子社区 1641

command ‘x86_64-linux-gnu-gcc‘ failed with exit status 1

error: command 'x86_64-linux-gnu-gcc' failed with exit status 1 今天在ubun20 安装mysqlclient 安装一直正常,在安装到最后 error: command ‘x86_64-linux-gnu-gcc’ failed with exit status 1 ---------------------------------------- ERROR: Command errored out with exit status 1: /h

我来自UFO的博客 788

ubuntu x86_64-linux-musl-g++ 下载

下载并解压到 /opt。# 添加到 PATH。

wearegamer的博客 483

Goconfluent-kafka-go编译问题

最近在给组里用到的镜像瘦身,也就是用一个更轻一点的基础镜像来重新构建服务的镜像,然后发现我们的项目 indirect 依赖到了 confluent-kafka-go,然后这玩意是需要在本地环境用到 librdkafka,这是一个用 C++ 写的 Kafka 的库,如果不熟悉 C++的朋友,搞起来就会很费劲。 说下编译遇到的问题,本地执行 go build 发现下面的报错。 gopkg.in/confluentinc/confluent-kafka-go.v1/kafka # pkg-config --cfl

runzhliu大数据/容器日记 2358

Windows 10 配置Rust交叉编译Linux应用程序-musl

应用程序开发,一般是在个人电脑开发,部署在产线服务器上。而个人电脑可能是Windows,MacOS或者Linux,而线上电脑一般是Linux系统,与个人电脑可能不一致,静态编译类型语言(C/C++,Rust等)直接编译存在兼容问题,这时候就需要在个人电脑上通过交叉编译的方式编译产线服务器对应系统版本的可执行应用程序。 本文记录Windows 10系统配置Rust语言交叉编译Linux应用程序环境。 1. 添加需要的target 添加target x86_64-unknown-linux-musl rust

新梦易明 1万+

ubuntu24.01 安装odoo18依赖报错command ‘x86_64-linux-gnu-gcc‘ failed: No such file or directory

安装Python依赖包psycopg2和python-ldap时出现编译错误。错误信息显示在构建wheel包时失败,主要原因是缺少必要的编译工具和依赖库。对于psycopg2,系统提示缺少gcc编译器,建议安装二进制版本psycopg2-binary或安装构建所需的依赖包。python-ldap同样遇到构建问题,出现了未知的distutils选项和许可证分类器警告。建议检查系统环境,确保已安装所有必要的构建工具和开发库,或尝试使用预编译的二进制包替代源码安装。

hebuyong的博客 381
上一篇: 【leetcode】【Golang】【剑指offer】【面试题10-I — 斐波那契数列】
peerless_me
博客等级 码龄12年 10粉丝 28原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值