当前位置: 首页 > news >正文

Ubuntu 18.04 x86_64 上交叉编译 boost 库(ARMv7L)

先安装 ARMv7L 交叉编译器环境:

在 Ubuntu 18.04 x86_64 上面安装 Linux-ARMv7 A/L GCC编译器-CSDN博客 

1、下载 boost 1.84 的源代码访问要编译的目录,并且解压出来源代码,切入源代码根目录

2、./bootstrap.sh --with-libraries=filesystem,thread --with-toolset=gcc

      --with-libraries=filesystem,thread 可以省略,就是尝试编译所有的库

3、上一条命令生成出 b2,之后同时还会生成一个 project-config.jam 的配置文件

4、修改这个配置文件

 把这段

if ! gcc in [ feature.values <toolset> ]
{using gcc ;
}

替换成 

if ! gcc in [ feature.values <toolset> ]
{using gcc : arm : /usr/bin/arm-linux-gnueabihf-gcc ;
}

这个 ARM 就是架构的意思,但这个架构是不存在的,所以会导致 boost::context 编译不出来。

参考问题:

Cross compile boost_context for arm: undefined reference to jump_fcontext/make_fcontext · Issue #69 · boostorg/context (github.com) 

Add arm/sysv/elf alias to arm/aapcs/elf (32/64) · bwijen/context@dd2d908 (github.com)

所以:

有两个解决方案。

1、架构改成 nano libs/context/build/Jamfile.v2 文件之中存在的架构(当然要改对)。

2、在 libs/context/build/Jamfile.v2 文件中新增架构,如新增ARM架构(跟上面遥相呼应)。

alias asm_sources: asm/make_arm_aapcs_elf_gas.Sasm/jump_arm_aapcs_elf_gas.Sasm/ontop_arm_aapcs_elf_gas.S: <abi>sysv<address-model>32<architecture>arm<binary-format>elf<toolset>gcc;alias asm_sources: asm/make_arm64_aapcs_elf_gas.Sasm/jump_arm64_aapcs_elf_gas.Sasm/ontop_arm64_aapcs_elf_gas.S: <abi>sysv<address-model>64<architecture>arm<binary-format>elf<toolset>gcc;

最后编译库:

./b2 -j32 

确定 boost context 库是否正确的被编译,不正确编译也是会生产库(so、a)文件的,所以要自己去输出库搜下导出符号信息:

cd stage/lib

strings libboost_context.a | grep make_fcontext

objdump -D -tT -C libboost_context.a | grep make_fcontext

nm -C libboost_context.a | grep make_fcontext

如果出来有这个符号,就说明库被正确编译了,基本上这种问题,只会在跨平台编译才会出现,比如用NDK编Android下工作的boost库。

相关文章:

Ubuntu 18.04 x86_64 上交叉编译 boost 库(ARMv7L)

先安装 ARMv7L 交叉编译器环境&#xff1a; 在 Ubuntu 18.04 x86_64 上面安装 Linux-ARMv7 A/L GCC编译器-CSDN博客 1、下载 boost 1.84 的源代码访问要编译的目录&#xff0c;并且解压出来源代码&#xff0c;切入源代码根目录 2、./bootstrap.sh --with-librariesfilesyste…...

为什么 FPGA 比 CPU 和 GPU 快?

FPGA、GPU 与 CPU——AI 应用的硬件选择 现场可编程门阵列 (FPGA) 为人工智能 (AI) 应用带来许多优势。图形处理单元 (GPU) 和传统中央处理单元 (CPU) 相比如何&#xff1f; 人工智能&#xff08;AI&#xff09;一词是指能够以类似于人类的方式做出决策的非人类机器智能。这包…...

js常用函数总结

js常用函数总结 1、模糊搜索 export const fuzzyQuery (list, keyWord, attribute name) > {const reg new RegExp(keyWord)const arr []for (let i 0; i < list.length; i) {if (reg.test(list[i][attribute])) {arr.push(list[i])}}return arr } list 原数组 ke…...

cartographer离线建图报错:data_.trajectory_nodes.SizeOfTrajectoryOrZero

cartographer离线建图报错: data_.trajectory_nodes.SizeOfTrajectoryOrZero [FATAL] [1706177325.876019302, 1706015603.398505596]: F0125 18:08:45.000000 17607 pose_graph_2d.cc:1314] Check failed: data_.trajectory_nodes.SizeOfTrajectoryOrZero(trajectory_id) &…...

【YOLO系列算法俯视视角下舰船目标检测】

YOLO系列算法俯视视角下舰船目标检测 数据集和模型YOLO系列算法俯视视角下舰船目标检测YOLO系列算法俯视视角下舰船目标检测可视化结果 数据集和模型 数据和模型下载&#xff1a; YOLOv6俯视视角下舰船目标检测训练好的舰船目标检测模型舰船目标检测数据YOLOv7俯视视角下舰船…...

python进程间使用共享内存multiprocessing.shared_memory来通讯

python多个进程通讯使用共享内存 1、multiprocessing.shared_memory ​ 使用这个模块可从进程直接访问共享内存,该模块提供了一个 SharedMemory 类,用于分配和管理多核或对称多处理器(SMP)机器上进程间的共享内存。 ​ 为了协助管理不同进程间的共享内存生命周期,multi…...

经典目标检测YOLO系列(三)YOLOv3的复现(2)正样本的匹配、损失函数的实现

经典目标检测YOLO系列(三)YOLOv3的复现(2)正样本的匹配、损失函数的实现 我们在之前实现YOLOv2的基础上&#xff0c;加入了多级检测及FPN&#xff0c;快速的实现了YOLOv3的网络架构&#xff0c;并且实现了前向推理过程。 经典目标检测YOLO系列(三)YOLOV3的复现(1)总体网络架构…...

编程笔记 html5cssjs 061 JavaScrip简介

编程笔记 html5&css&js 061 JavaScrip简介 一、JavaScript概述二、JavaScript的主要特点三、历史延革四、JavaScript与前端开发小结 JavaScript 是 web 开发者必学的三种语言之一&#xff1a;HTML 定义网页的内容&#xff1b;CSS 规定网页的布局&#xff1b;JavaScript…...

计算机网络 第5章(运输层)

系列文章目录 计算机网络 第1章&#xff08;概述&#xff09; 计算机网络 第2章&#xff08;物理层&#xff09; 计算机网络 第3章&#xff08;数据链路层&#xff09; 计算机网络 第4章&#xff08;网络层&#xff09; 计算机网络 第5章&#xff08;运输层&#xff09; 计算机…...

pythonSM4加密

数据安全法及密评要求&#xff0c;敏感数据系统需要使用国密算法进行加解密处理。 敏感数使用SM4/ECB加解密方式 #密钥参数epidemic_key #加密信息参数 message #加密算法SM4/ECB/PKCS5Padding #加密类型SM4-ECB #添加模式PKCS5Padding from cryptography.hazmat.primitives.…...

JSP在线阅读系统myeclipse定制开发SQLServer数据库网页模式java编程jdbc

一、源码特点 JSP 小说在线阅读系统是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库 &#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为SQLServer2008&#…...

el-date-picker设置default-time的默认时间

default-time &#xff1a;选择日期后的默认时间值。 如未指定则默认时间值为 00:00:00 默认值修改 <el-form-item label"计划开始时间" style"width: 100%;" prop"planStartTime"><el-date-picker v-model"formData.planStart…...

List集合根据对象某个元素去重

序言 检视代码时有下面这样一段代码&#xff08;已脱敏处理&#xff09;&#xff0c; import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Function; import java.util.function.Predicate; import java.util.stream.Collectors…...

QML Qt4版本移植到Qt5概述

C++代码 在Qt5中,QML应用程序使用OpenGL场景图架构来渲染,而在Qt4中使用的是图形视图框架。这种结构上的变化导致C++接口进行了大量重构。QtDeclarative模块已被弃用,该模块的类被移动到新的QtQML和QtQuick模块中,名称有了变化,如表3-1所列。如果需要使用Qt5中新的QQml和…...

【极数系列】Flink环境搭建Linux版本 (03)

文章目录 引言01 Linux部署JDK11版本1.下载Linux版本的JDK112.创建目录3.上传并解压4.配置环境变量5.刷新环境变量6.检查jdk安装是否成功 02 Linux部署Flink1.18.0版本1.下载Flink1.18.0版本包2.上传压缩包到服务器3.修改flink-config.yaml配置4.启动服务5.浏览器访问6.停止服务…...

2023年深圳市节假日人口迁入数据,shp/excel格式,需要自取!

基本信息. 数据名称: 深圳市节假日人口迁入数据 数据格式: Shp、excel 数据时间: 2023年国庆节 数据几何类型: 线 数据坐标系: WGS84 数据来源&#xff1a;网络公开数据 数据字段&#xff1a; 序号字段名称字段说明1a0928迁入人口占迁入深圳市人口的比值&#xff0…...

Windows10上通过MSYS2编译FFmpeg 6.1.1源码操作步骤

1.从github上clone代码&#xff0c;并切换到n6.1.1版本&#xff1a;clone到D:\DownLoad目录下 git clone https://github.com/FFmpeg/FFmpeg.git git checkout n6.1.1 2.安装MSYS2并编译FFmpeg源码: (1).从https://www.msys2.org/ 下载msys2-x86_64-20240113.exe &#…...

HiveSQL题——用户连续登陆

目录 一、连续登陆 1.1 连续登陆3天以上的用户 0 问题描述 1 数据准备 2 数据分析 3 小结 1.2 每个用户历史至今连续登录的最大天数 0 问题描述 1 数据准备 2 数据分析 3 小结 1.3 每个用户连续登录的最大天数(间断也算) 0 问题描述 1 数据准备 2 数据分析 3 小…...

题解仅供学习使用

...

Linux命令-apt-get命令(Debian Linux发行版中的APT软件包管理工具)

补充说明 apt-get命令 是Debian Linux发行版中的APT软件包管理工具。所有基于Debian的发行都使用这个 包管理系统。deb包可以把一个应用的文件包在一起&#xff0c;大体就如同Windows上的安装文件。 语法 apt-get [OPTION] PACKAGE选项 apt-get install 安装新包 apt-get r…...

如何用Electron打造全平台视频播放神器:zyfun跨平台开发实战指南

如何用Electron打造全平台视频播放神器&#xff1a;zyfun跨平台开发实战指南 【免费下载链接】zyfun 跨平台桌面端视频资源播放器,免费高颜值. 项目地址: https://gitcode.com/gh_mirrors/zy/zyfun 在当今多设备、多系统的数字时代&#xff0c;一款真正优秀的视频播放器…...

Qt实战:用QCustomPlot的QCPColorMap绘制声呐/热力图,附完整代码与色条(QCPColorScale)美化技巧

Qt实战&#xff1a;用QCustomPlot实现专业级声呐热力图可视化 第一次在项目中尝试用QCustomPlot绘制声呐数据时&#xff0c;我被它强大的性能震撼了——5000100的数据矩阵渲染仅需200毫秒&#xff0c;而Matplotlib处理同样规模的数据需要近3秒。这个发现让我彻底放弃了Python方…...

SDMatte Web服务灰度发布:新模型版本AB测试与用户反馈闭环机制

SDMatte Web服务灰度发布&#xff1a;新模型版本AB测试与用户反馈闭环机制 1. 引言 在AI图像处理领域&#xff0c;模型迭代更新是持续提升服务质量的必经之路。SDMatte作为一款专注于高质量图像抠图的AI模型&#xff0c;近期完成了新版本SDMatte的研发工作。本文将详细介绍我…...

VScode 高效开发 Springboot 应用的完整指南

1. 环境准备与项目创建 第一次用VScode开发Springboot项目时&#xff0c;我对着空白编辑器发呆了半小时。后来发现只要装对插件&#xff0c;效率能翻倍。先打开VScode的扩展商店&#xff0c;这三个插件是必装的&#xff1a; Java Extension Pack&#xff1a;包含语言支持、调…...

医学图像分类实战:基于kvasir v2胃病数据集的深度卷积网络性能对比

1. 医学图像分类与KVASIR V2数据集简介 胃镜图像分类是计算机辅助诊断系统中的关键环节。KVASIR V2作为目前最全面的公开胃病数据集&#xff0c;包含8类常见胃部病变的8000张高清图像&#xff0c;每类1000张。这些图像由专业胃肠病专家标注&#xff0c;覆盖了从正常黏膜到早期…...

公开信息整理|2026年3月27日:楼市需求、长护险覆盖、个体工商户增长与部分国际动态速览

&#x1f525;个人主页&#xff1a;杨利杰YJlio❄️个人专栏&#xff1a;《Sysinternals实战教程》《Windows PowerShell 实战》《WINDOWS教程》《IOS教程》《微信助手》《锤子助手》 《Python》 《Kali Linux》 《那些年未解决的Windows疑难杂症》&#x1f31f; 让复杂的事情更…...

STM32CubeMX+Keil MDK联合开发:手把手教你配置蓝桥杯G431工程模板

STM32CubeMXKeil MDK联合开发&#xff1a;手把手教你配置蓝桥杯G431工程模板 对于参加蓝桥杯嵌入式赛道的选手来说&#xff0c;掌握STM32G431RBT6开发板的快速工程搭建是必备技能。本文将带你从零开始&#xff0c;通过STM32CubeMX和Keil MDK的协同工作&#xff0c;完成一个标准…...

COMSOL激光与电火花高斯热源作用下5.6版本两相流水平集仿真模型:流体传热-层流耦合研究

comsol激光、电火花&#xff08;高斯热源&#xff09;加工的水平集两相流仿真模型&#xff0c;5.6版本的&#xff0c;是流体传热—层流—两相流水平集耦合。在COMSOL Multiphysics 5.6中&#xff0c;模拟激光或电火花加工过程中的热源分布和流体行为&#xff0c;是一个相当有趣…...

2026 年直播电商如何进化?内容创作与管理的新模式是什么?

核心要点 问题&#xff1a; 为什么很多直播电商团队在 2025 年后明显感到"内容越来越多&#xff0c;但效果越来越不稳定"&#xff1f; 答案&#xff1a; 进入 2026 年&#xff0c;直播电商从"单场爆发"转向"内容体系竞争"。真正拉开差距的&#…...

如何用3步实现Jable视频高效下载?开源工具jable-download的完整解决方案

如何用3步实现Jable视频高效下载&#xff1f;开源工具jable-download的完整解决方案 【免费下载链接】jable-download 方便下载jable的小工具 项目地址: https://gitcode.com/gh_mirrors/ja/jable-download jable-download是一款专为普通用户设计的Jable视频下载工具&am…...