【发现一个问题】macos m2 下无法使用 x86_64-linux-musl-gcc 链接含有 avx512 指令的 c 代码
作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!
一开始是使用 golang 中的 cgo 来编译:
env CC= c CGO_ENABLED=1 GOOS=linux GOARCH=amd64 \
CGO_CFLAGS="-mavx -mavx2 -mavx512f -mavx512vl -mavx512bw -O2" \
go build -tags 'musl' \
-ldflags="-w -s" \
-o bin/mysvr_linux_amd main.go
出现这样的错误信息:
# command-line-arguments
/opt/homebrew/Cellar/go/1.20.4/libexec/pkg/tool/darwin_arm64/link: running x86_64-linux-musl-gcc failed: exit status 1
/opt/homebrew/Cellar/musl-cross/0.9.9_1/libexec/bin/../lib/gcc/x86_64-linux-musl/9.2.0/../../../../x86_64-linux-musl/bin/ld: /var/folders/gh/kjdg0t613bgdkppccm_f_hb80000gn/T/go-link-3887829862/000013.o: in function `caesarEncodeSIMD':
caesar_linux_amd64.cgo2.c:(.text+0xad): undefined reference to `_mm_storeu_epi8'
collect2: error: ld returned 1 exit status
但是,我在 m2 上下载一个 linux/amd64 的 gcc 容器来编译,又是完全正常的。
最终确定是 x86_64-linux-musl-gcc 的问题:
x86_64-linux-musl-gcc -o a1 a1.o -static
/opt/homebrew/Cellar/musl-cross/0.9.9_1/libexec/bin/../lib/gcc/x86_64-linux-musl/9.2.0/../../../../x86_64-linux-musl/bin/ld: a1.o: in function `caesarEncodeSIMD':
/Users/fuchunzhang/code/infowiz/system/golang/game-launcher/pkg/cryptoutil/caesar.c:26: undefined reference to `_mm_storeu_epi8'
collect2: error: ld returned 1 exit status
由此看来无法使用x86_64-linux-musl-gcc 来实现 macos m2 下交叉编译 linux/amd64 中含有 avx 指令的代码。
后面再试试别的交叉编译工具。
【发现一个问题】macos m2 下无法使用 x86_64-linux-musl-gcc 链接含有 avx512 指令的 c 代码的更多相关文章
- HTML DOM insertBefore() 方法 使用的时候发现一个问题,记录下
在W3C中是这样定义的 第二个参数是可先的,但是在谷歌浏览器和火狐浏览器中测试是会有bug的,第二个参数是必填的,否则会报错 感兴趣的可以测试 以下是我测试的结果: 谷歌浏览器:Uncaught ...
- linux 下程序员专用搜索源码用来替代grep的软件ack(后来发现一个更快的: ag), 且有vim插件的
发现一个比ack更快更好用的: https://github.com/ggreer/the_silver_searcher , 使用时命令为ag,它是基于ack的代码二次开发的,所有使用方法基本 ...
- MacOS系统下的图形化工具
MacOS系统下的图形化工具 MacOS系统下安装了Git后,发现如果Git中有中文文档操作还是比较麻烦(需要输入中文的文件名).图形化对Git的操作还是相对于方便一些.所以准备找一个图形化的工具. ...
- PyQt5 应用在 TeamViewer 下无法使用全屏模式
PyQt5 应用在 TeamViewer 下无法使用全屏模式 问题描述 使用 PyQt5 (版本为 5.7)中的 QtWebEngineView 构建的桌面应用,部署到远程机器(Windows 7 平 ...
- 从偶然的机会发现一个mysql特性到wooyun waf绕过题
从偶然的机会发现一个mysql特性到wooyun waf绕过题 MayIKissYou | 2015-06-19 12:00 最近在测试的时候,偶然的机会发现了一个mysql的特性, 为啥是偶然的机会 ...
- 学习LINQ,发现一个好的工具。LINQPad!!
今日学习LINQ,发现一个好的工具.LINQPad!! 此工具的好处在于,不需要在程序内执行,直接只用工具测试.然后代码通过即可,速度快,简洁方便. 可以生成其LINQ查询对应的lambda和SQL语 ...
- 【Windows 7】发现一个奇怪的现象
最近在Windows7-32位操作系统上发现一个奇怪的现象,不知道64位操作系统上会不会发生这个现象.这个现象就是:如果系统上的一个或多个账户没有设置密码,那么在此条件下终止winlogon.exe进 ...
- centos6下无法使用lsof命令"-bash: lsof: command not found"
1. 问题描述在centos下, 无法使用命令lsof, 出现以下信息:# lsof -i:3690-bash: lsof: command not found2. 解决方法我们可以通过yum来安装: ...
- spring-cloud-kubernetes服务发现之在k8s环境下开发spring cloud应用
通常情况下,我们的线上的服务在迁移到k8s环境下的时候,都是采用平滑迁移的方案.服务治理与注册中心等都是采用原先的组件.比如spring cloud应用,在k8s环境下还是用原来的一套注册中心(如eu ...
- 翻了翻element-ui源码,发现一个很实用的指令clickoutside
前言 指令(directive)在 vue 开发中是一项很实用的功能,指令可以绑定到某一元素或组件,使功能的颗粒度更精细.今天在翻 element-ui 的源码时,发现一个还挺实用的工具指令,跟大伙分 ...
随机推荐
- COG云原生优化遥感影像,瓦片切分的最佳实践
摘要:云上遥感影像文件Cloud optimized GeoTIFF(COG)格式的详细介绍,大量数据上云面临的挑战,并分享了获得云原生影像最佳性能的实践经验. 本文分享自华为云社区<COG云原 ...
- webpack性能优化(2):splitChunks用法详解
之前写的<webpack性能优化(0):webpack性能优化概况-优化构建速度>.<webpack性能优化(1):分隔/分包/异步加载+组件与路由懒加载> 如果使用vue-c ...
- 火山引擎 DataTester 首推A/B实验经验库,帮助企业高效优化实验设计能力
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 近日,火山引擎 DataTester 推出了重要功能--A/B实验经验库. 基于在字节跳动已完成150万余次A/B ...
- 火山引擎 DataTester:A/B 实验如何实现人群智能化定向?
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 在精细化运营时代,用户需求和业务场景愈加多元,在产品功能迭代以及各类活动中,面向不同人群的兴趣点,有针对性地&qu ...
- 机器学习的线性代数(Python 版)
线性代数是数学的分支学科,涉及矢量.矩阵和线性变换.它是机器学习的重要基础,从描述算法操作的符号到代码中算法的实现,都属于该学科的研究范围. 虽然线性代数是机器学习领域不可或缺的一部分,但二者的紧密关 ...
- awk 文本编辑器
1.简介 文本编辑器 非交互式的编辑器 编程语言 功能:对文本数据进行汇总和处理 是一个报告生成器 能够对数据进行排版 工作模式:行工作模式 读入一行 将整行内容存在$0里,一行等于一个记录 记录分隔 ...
- JSP | Tomcat目录结构详解
前排提醒:本文不涉及如何安装 Tomcat,仅分析Tomcat目录结构. Tomcat 版本:apache-tomcat-8.5.71 Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器 ...
- 线段树 hdu 4027
***又是超时的问题,当一个区间全是1时,再去开方和不开方是一样的,所以在这一步不需要再往底层递归了*** #include <iostream> #include <cstdio& ...
- Android Emulator 画面闪烁
Android 虚拟机经常会出现画面闪烁,可以通过修改设置解决. 打开虚拟机之后,点击 "..." 按钮.按照下图改为 "D3D11",冷重启虚拟机就好了.
- PMP2023
敏捷迭代周期过程中的会议 https://blog.csdn.net/xudahai513/article/details/125216704 https://img-blog.csdnimg.cn/ ...
