Breakpad交叉编译aarch64

news2024/11/30 14:35:00

        原本是在mac os上编译的,但是会出现一些问题,因此还是开了台linux容器进行编译,本文可结合之前的linux下编译breakpad共同查看。

Linux下Breakpad编译_Edward.W的博客-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/u013379032/article/details/130754480?spm=1001.2014.3001.5502

总体过程

1. 还是下载一些基础的依赖,这边和x86平台的一样

sudo apt-get update
sudo apt install g++
sudo apt install git-all
sudo apt install build-essential
sudo apt-get install zlib1g-dev

2. 拉取代码,虽然官网建议用fetch增加依赖,不过还是直接用git一起搞定把

git clone https://chromium.googlesource.com/breakpad/breakpad

cd breakpad
git clone https://chromium.googlesource.com/linux-syscall-support src/third_party/lss

3. 交叉编译一个aarch64

sudo ./configure CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ AR=aarch64-linux-gnu-gcc-ar RANLIB=aarch64-linux-gnu-gcc-ranlib --host=aarch64-linux-gnu
make

遇到的坑

        怎么说呢,越简单的问题越容易遇到坑,就上面这么简单的几个步骤,在configure步骤的坑可一点都不少。接下来我们就来盘点一下把。

1. C编译器的问题

error: C compiler cannot create executables cross compile arm64

可能的解决方案:

(1) 权限问题,需要sudo ./configure .....

(2) 如果还有问题就是交叉编译的包没有安装,需要安装aarch64的gcc和g++

sudo apt-get install gcc-aarch64-linux-gnu
sudo apt-get install g++-aarch64-linux-gnu

2. O_TMPFILE的问题

undeclared identifier 'O_TMPFILE

这个O_TMPFILE是在Linux上的标记,如果非要用Mac编译,可以直接删掉,不影响功能

3. gmkdir不存在

gmkdir实际上就是mkdir,既然找不到,就建个软连接把。

sudo ln -s  /bin/mkdir gmkdir  

4. arc4random有问题

error: ‘arc4random’ was not declared in this scope

        在代码里面定义了三种random的方法,只需要把/src/common/linux/guid_creator.cc里面关于使用和定义arc4random相关的地方都注释掉,程序内部会自动调用其他的随机算法。

5. N_UNDF没找到

src/common/stabs_reader.cc:102:35: error: ‘N_UNDF’ was not declared in this scope

修改src/common/stabs_reader.h

#include <a.out.h>   //原本
#include <linux/a.out.h>  //修改后

6. 找不到zstd

具体问题是:

/usr/bin/ld: cannot find -lzstd

解决方案: 

sudo apt-get update
apt-get install libzstd-dev

如果还不能行的话

curl https://github.com/facebook/zstd/releases/download/v1.5.5/zstd-1.5.5.tar.gz -o zstd.tar.gz
tar -zvxf zstd-1.5.5.tar.gz 
cd zstd-1.5.5/
make prefix=/usr/aarch64-linux-gnu/
sudo make install

7. 找不到zlib

具体问题是

/usr/bin/ld: cannot find -lz

解决方案 

curl http://www.zlib.net/zlib-1.3.tar.gz -O output.tar.gz
tar -zvxf output.tar.gz
cd zlib-1.3
./configure --prefix=/usr/aarch64-linux-gnu/
make
sudo make install (write to cross bin)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/951300.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

day3 牛客TOP100:BM 21-30 二分法 二叉树

文章目录 二分法BM21 旋转数组的最小数字BM22 比较版本号力扣-旋转数组的查找力扣-两个非空链表逆序相加 二叉树BM23 二叉树的前序遍历BM24 二叉树的中序遍历BM25 二叉树的后序遍历BM26 求二叉树的层序遍历BM27 按之字形顺序打印二叉树BM28 二叉树的最大深度BM29 二叉树中和为某…

无涯教程-Android - Frame Layout函数

Frame Layout 旨在遮挡屏幕上的某个区域以显示单个项目&#xff0c;通常&#xff0c;应使用FrameLayout来保存单个子视图&#xff0c;因为在子视图彼此不重叠的情况下&#xff0c;难以以可扩展到不同屏幕尺寸的方式组织子视图。 不过&#xff0c;您可以使用android:layout_grav…

Unity——资产包(Asset Bundles)

对很多单机游戏来说&#xff0c;游戏的所有资源往往是与游戏本体一同发布的&#xff0c;资源部西药独立出来。但对于大型商业项目来说&#xff0c;游戏产品还需要再发布之后进行维护和更新&#xff0c;这就引出了Unity资产包的概念 一、资产包&#xff08;Asset Bundles&#x…

推荐几款常用测试数据自动生成工具(适用自动化测试、性能测试)

一、前言 在软件测试中&#xff0c;测试数据是测试用例的基础&#xff0c;对测试结果的准确性和全面性有着至关重要的影响。因此&#xff0c;在进行软件测试时&#xff0c;需要生成测试数据以满足测试场景和要求。本文将介绍如何利用测试数据生成工具来快速生成大量的测试数据…

【Windows打开OpenSSH服务端支持】

文章目录 概要整体架构流程技术细节1.安装OpenSSH服务端2.设置自启动3.启动服务4.资源监视器 修改配置防火墙小结 概要 项目需要装了一个Windows Server 2022&#xff0c;由于不能亲自到场调试&#xff0c;我就打开了OpenSSH服务支持&#xff0c;给有需要的小伙伴参考下。 整…

飞天使-python的分支结构,循环,函数

文章目录 分支结构单分支双分支多分支内联if条件语句案例&#xff0c;门票价格 循环for,in 循环for in 次数控制while 循环while遍历跳出循环break跳出循环continue 函数函数概念内置函数自定义函数函数进阶作用域 参考视频 分支结构 单分支 对事情判断&#xff0c;然后做出选…

08-Vue基础之组件

个人名片&#xff1a; &#x1f60a;作者简介&#xff1a;一名大二在校生 &#x1f921; 个人主页&#xff1a;坠入暮云间x &#x1f43c;座右铭&#xff1a;懒惰受到的惩罚不仅仅是自己的失败&#xff0c;还有别人的成功。 &#x1f385;**学习目标: 坚持每一次的学习打卡 文章…

搬家快递服务小程序的便利性

在当今快节奏的生活中&#xff0c;搬家可能是很多人都需要面对的问题。无论是新房子还是新办公室&#xff0c;都需要高效、便捷的搬家服务。本文将介绍如何使用第三方小程序制作平台&#xff0c;如乔拓云平台&#xff0c;开发一款高效便捷的搬家服务小程序。 1. 注册登录第三方…

Muscles|Tissue —— 介绍

BETA —— 此功能仍然在开发测试中&#xff0c;相关文档很少或没有&#xff0c;使用时需注意&#xff1b; 可使用Vellum-based Muscles & Tissue系统&#xff0c;模拟角色的肌肉、组织、及皮肤&#xff1b;可轻易导入模型和动画&#xff0c;并快速配置解算模拟&#xff1b;…

LeetCode第26~30题解

CONTENTS LeetCode 26. 删除有序数组中的重复项&#xff08;简单&#xff09;LeetCode 27. 移除元素&#xff08;简单&#xff09;LeetCode 28. 找出字符串中第一个匹配项的下标&#xff08;简单&#xff09;LeetCode 29. 两数相除&#xff08;中等&#xff09;LeetCode 30. 串…

Python基础知识学习与回顾

Python学习 Python基本语法 标识符 标识符由数字、字符串、下划线构成。 注意事项&#xff1a; 标识符不以数字开头区分大小写下划线开头的标识符具有特殊意义保留字&#xff0c;Python保留了一些关键字&#xff0c;这些关键字都是通过小写字母进行保存。 下划线开头的特…

前端常使用的一些网站

一.echarts Examples - Apache ECharts 身为一个资深的前端工程师 echarts 肯定是必不可少的呀 二. echarts社区 series-line折线图 - makeapie echarts社区图表可视化案例 这里面有各种大神 封装好的图例 拉下来直接使用即可 三. Element Element - The worlds most po…

【Interaction交互模块】LinearJointDrive线性关节驱动

文章目录 一、预设体位置二、案例&#xff1a;做一个“能拉动的抽屉”三、原理四、交互方式1、碰触2、抓取 一、预设体位置 交互模块——可控制物体——物理关节——线性关节驱动 二、案例&#xff1a;做一个“能拉动的抽屉” 建一个柜子外框&#xff0c;然后拓展“线性关节…

el-tree-select 树形选择的使用

案例&#xff1a; 代码&#xff1a; /**v-model:绑定的字段 */ <el-form-itemlabel"父级名称&#xff1a;"prop"ParentID"><el-tree-selectfilterablecheck-strictlyv-model"Form.ParentID":data"optionProviderType":rend…

漱玉平民大药房:多元化药店变革的前夜

作者 | 王聪彬 编辑 | 舞春秋 来源 | 至顶网 本文介绍了漱玉平民大药房在药品零售领域的数字化转型和发展历程。通过技术创新&#xff0c; 漱玉平民 建设了覆盖医药全生命周期的大健康生态圈&#xff0c;采用混合云架构和国产分布式数据库 TiDB&#xff0c;应对庞大的会员数据处…

2023年8月30日-[SWPUCTF 2021 新生赛]jicao

<?php highlight_file(index.php); include("flag.php"); $id$_POST[id]; $jsonjson_decode($_GET[json],true); if ($id"wllmNB"&&$json[x]"wllm") {echo $flag;} ?> 包含了flag.php文件&#xff0c;设定了一个POST请求的id和…

Postgresql JSON对象和数组查询

文章目录 一. Postgresql 91.1 简单查询(缺陷&#xff1a;数组必须指定下标&#xff0c;不推荐)1.1.1 模糊查询1.1.2 等值匹配1.1.3 时间搜索1.1.4 在列表1.1.5 包含 1.2 多层级JSONArray&#xff08;推荐&#xff09;1.2.1 模糊查询1.2.2 模糊查询 NOT1.2.3 等值匹配1.2.4 等值…

测试理论与方法----测试流程第三个环节:设计测试用例

测试流程第三个环节&#xff1a;设计测试用例&#xff1a;怎么测<——>测试需求的提取&#xff1a;测什么 ### 5、测试用例 描述&#xff1a;测试用例(TestCase)&#xff1a;是一份关于【具体测试步骤】的文档&#xff0c;是为了达到最佳的测试效果或高效揭露软件中潜藏的…

树形下拉框,结合ztree

1、首先引入jq 以及ztree.js 测试版本的jq是2.1.4 jauery 在线链接 https://cdn.bootcdn.net/ajax/libs/jquery/2.1.4/jquery.min.js 以下代码为ztree-select.js /*** 下拉树* 务必先引入 jQuery 和 zTree*/ (function($) {function TreeSelect() {var ts new Object();ts.…