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

记录:Ubuntu 18.04 X86 上通过CMake 指定编译器工具链交叉编译。

最好是通过 cmake 命令行来设置,要不然你只有在 CMakeFiles.txt 里面自己写判断语句了。

要用 cmake 交叉编译,必须设置连接器,要不然会使用当前系统的 ld,就是 /usr/bin/ld。

但是其它平台是不会ld上的,elf格式都不一样,所以需要手动指定交叉编译的 ld 工具。

别看某些人乱整文,交叉编译不配连接器,这不是扯淡呢,虽然能编走,但是链接不上等于0。

另外:

路径可以写全路径,但是一般不需要,因为正确安装的交叉编译器都在 /usr/bin、/usr/sbin 之中有软连接,你直接写交叉编译工具链的名字就可以了。

1、ARMv7L编译

cmake .. -DCMAKE_BUILD_TYPE=Release \-DCMAKE_C_COMPILER=arm-linux-gnueabihf-gcc \-DCMAKE_CXX_COMPILER=arm-linux-gnueabihf-g++ \-DCMAKE_LINKER=arm-linux-gnueabihf-ld

2、S390X编译(IBM大型机)

cmake .. -DCMAKE_BUILD_TYPE=Release \-DCMAKE_C_COMPILER=s390x-linux-gnu-gcc \-DCMAKE_CXX_COMPILER=s390x-linux-gnu-g++ \-DCMAKE_LINKER=s390x-linux-gnu-ld

3、AARCH64编译(ARMv64)

cmake .. -DCMAKE_BUILD_TYPE=Release \-DCMAKE_C_COMPILER=aarch64-linux-gnu-gcc \-DCMAKE_CXX_COMPILER=aarch64-linux-gnu-g++ \-DCMAKE_LINKER=aarch64-linux-gnu-ld

安装交叉编译器:

apt-get install gcc-aarch64-linux-gnu -y

apt-get install g++-aarch64-linux-gnu binutils-aarch64-linux-gnu -y

4、MIPS64编译

大端

cmake .. -DCMAKE_BUILD_TYPE=Release \-DCMAKE_C_COMPILER=mips64-linux-gnuabi64-gcc \-DCMAKE_CXX_COMPILER=mips64-linux-gnuabi64-g++ \-DCMAKE_LINKER=mips64-linux-gnuabi64-ld

安装交叉编译器:

sudo apt install gcc-mips64-linux-gnuabi64 -y

sudo apt install build-essential g++-mips64-linux-gnuabi64 -y

MIPS64-EL(小端)

cmake .. -DCMAKE_BUILD_TYPE=Release \-DCMAKE_C_COMPILER=mips64el-linux-gnuabi64-gcc \-DCMAKE_CXX_COMPILER=mips64el-linux-gnuabi64-g++ \-DCMAKE_LINKER=mips64el-linux-gnuabi64-ld

安装交叉编译器:

sudo apt install gcc-mips64el-linux-gnuabi64 binutils-mips64el-linux-gnuabi64 -y

sudo apt install g++-mips64el-linux-gnuabi64 -y

sudo apt install gdb-multiarch-mips64el-linux-gnuabi64 -y

补充:

可以在 CMakeFiles.txt 之中,手动写工具链的信息,但是我不建议,真心的,跨平台交叉编译,真心不推荐,除非你是真的没办法,但这种也应该写对应平台的编译 patch(补丁)。

相关文章:

记录:Ubuntu 18.04 X86 上通过CMake 指定编译器工具链交叉编译。

最好是通过 cmake 命令行来设置,要不然你只有在 CMakeFiles.txt 里面自己写判断语句了。 要用 cmake 交叉编译,必须设置连接器,要不然会使用当前系统的 ld,就是 /usr/bin/ld。 但是其它平台是不会ld上的,elf格式都不…...

requests,js逆向练习

自上而下排除jquery源码,点进去utils 发现第一次请求是getTime 再次运行此断点才是登录,这个时候密码已经被加密了 查看上级js页面,发现加密函数 进去看函数加密过程 得到结果RSA python代码 import base64 import jsonimport requests f…...

Chrome 插件调试

http://blog.haoji.me/chrome-plugin-develop.html#te-bie-zhu-yi-background-de-bao-cuo 手把手:Chrome浏览器开发系列(四):调试我们开发的插件 - 掘金...

云轴科技ZStack成为交通运输业上云用云推进中心首批成员单位

近日,中国信息通信研究院、中国交通运输协会信息专业委员会联合发起成立“交通运输业上云用云推进中心”,上海云轴信息科技有限公司(简称云轴科技ZStack)凭借优秀的产品技术创新能力和在交通运输领域的实践经验成为首批成员单位并…...

代码随想录算法训练营31期day4,力扣24+19+02.07+142

24,动指针 class Solution { public:ListNode* swapPairs(ListNode* head) {//建立虚拟头结点auto dummynew ListNode(-1);dummy->nexthead;for(auto pdummy;p->next&&p->next->next;){auto ap->next;auto ba->next;p->nextb;a->n…...

eNSP学习——利用单臂路由实现VLAN间路由

目录 原理概述 实验内容 实验目的 实验步骤 实验拓扑 实验编址 配置步骤 创建VLAN并配置Access、Trunk接口 配置路由器子接口和IP地址 配置路由器子接口封装VLAN 测试结果 原理概述 在以太网中,通常会使用VLAN技术隔离二层广播域来减少广播的影响&#…...

ISO27001认证:企业与个人发展的必备之选

ISO27001认证,对于企业和个人来说,都具有极高的价值和重要性。作为国际权威的信息安全管理体系标准,它为企业提供了保障信息安全、防范风险和提升竞争力的有力工具。 💼对企业的价值: ISO27001认证可以帮助企业满足国家…...

SpringBoot使用druid

SpringBoot使用druid 一、前言二、配置1、pom依赖2、配置文件yml3、配置类 一、前言 Java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,又不得不使用数据库连接池。 Druid 是阿里巴巴开源平台上一个数据库连接池实现,结合了 C…...

TongWeb8交流常见问答集

问题1:今后用到你们TongWeb产品该联系谁? 答复: 1. 商务问题,如:报价、license授权、合同等请联系销售。 2. TongWeb技术问题,未签项目联系售前,已签项目联系售后。有指定项目经理的项目&…...

GBASE南大通用分享-mysql中的load data infile用法

GBASE南大通用分享 mysql中的load data infile用法 LOAD DATA [LOW_PRIORITY] [LOCAL] INFILE file_name.txt [REPLACE | IGNORE] INTO TABLE tbl_name [FIELDS [TERMINATED BY \t] [OPTIONALLY] ENCLOSED BY ] [ESCAPED BY \\ ]] [LINES TERMINATED BY \n] [IGNORE number L…...

Ubuntu18编译jdk8源码

环境 系统 ubuntu18 Linux ubuntu 5.4.0-150-generic #167~18.04.1-Ubuntu SMP Wed May 24 00:51:42 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux jdk源码openjdk-8u41-src-b04-14_jan_2020.zip bootJdk jdk-8u391-linux-x64.tar.gz ps -e|grep ssh sudo apt-get install ssh…...

《开始使用PyQT》 第01章 PyQT入门 02 安装Python3和PyQT6

02 安装Python3和PyQT6 《开始使用PyQT》 第01章 PyQT入门 02 安装Python3和PyQT6 So that all readers are on the same page, let’s begin by installing or updating your version of Python. 为了让所有读者都能理解,让我们从安装或更新 Python 版本开始。 …...

Java集合-Map接口(key-value)

Map接口的特点:①KV键值对方式存储②Key键唯一,Value允许重复③无序。 Map有四个实现类:1.HashMap类2.LinkedHashMap类3.TreeMap类4.Hashtable类 1.HashMap类: 存储结构:哈希表 数组Node[ ] 链表(红黑…...

【操作系统】实验九 写一个设备驱动程序

🕺作者: 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux 😘欢迎关注:👍点赞🙌收藏✍️留言 🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的很重要&…...

基于密码技术的身份认证——基于对称密码体制的身份认证

一、符号说明: A→B:表示通信实体A向通信实体B发送消息; Ek(x):表示用认证双方共享的密钥K对x进行加密; Text1,Text2,……,Text n属于可选项; ||:表示比特…...

算法36:单调栈结构、子数组最小乘积的最大值问题(力扣1586)----单调栈

单调栈:就是在栈中实现数据的单调性。即从栈底到栈顶,要么递增,要么递减。 那么,使用单调栈,可以解决什么问题呢? 给定一个可能含有重复值的数组arr,i位置的数一定存在如下两个信息 1&#x…...

django mysql in 有序返回

from django.db.models import * ordering f"FIELD(id, {,.join([str(_) for _ in ids])})" # 默认就按照算法返回的 id 排序p_data_result PeptidesDataResult.objects.using("polypeptide").filter(id__inids).values().extra(select{ordering: orderi…...

c++24.1.26嵌套if语句

嵌套if语句:if语句中的if语句 实践:...

机器学习--基础概念(二)

1.分类算法 分类算法是有监督学习的一个核心问题,他从数据中学习一个分类决策函数或分类模型,对新的输入进行预测,输出变量取有限个离散值。 以下是一些常见的分类算法: 逻辑回归 (Logistic Regression): 用于二分类问题&#x…...

Ubuntu20.04 安装 ROS noetic + MAVROS

本文在 AlphaCatOvO【ROS】在 Ubuntu 20.04 安装 ROS 的详细教程 基础上,根据实际安装经验,稍微进行补充。 一、安装Ubuntu20.04 假设已经正确安装。 二、安装 ROS noetic 2.1 换源 执行 sudo apt update sudo mv /etc/apt/sources.list /etc/apt/…...

如何让数学公式编辑达到手写速度:Obsidian LaTeX Suite深度解析

如何让数学公式编辑达到手写速度:Obsidian LaTeX Suite深度解析 【免费下载链接】obsidian-latex-suite Make typesetting LaTeX as fast as handwriting through snippets, text expansion, and editor enhancements 项目地址: https://gitcode.com/gh_mirrors/o…...

Spring Cloud集成Nacos配置中心常见问题解析

1. Spring Cloud集成Nacos配置中心常见问题解析 在微服务架构中,配置中心是必不可少的基础组件。Nacos作为阿里巴巴开源的一款集服务发现、配置管理于一体的中间件,凭借其轻量级、高可用等特性,已经成为Spring Cloud生态中配置中心的热门选择…...

探索光的世界:Ray Optics Simulation 几何光学仿真平台深度解析

探索光的世界:Ray Optics Simulation 几何光学仿真平台深度解析 【免费下载链接】ray-optics A web app for creating and simulating 2D geometric optical scenes, with a gallery of (interactive) demos. 项目地址: https://gitcode.com/gh_mirrors/ra/ray-op…...

CodeT5安全使用指南:如何避免代码生成中的潜在风险

CodeT5安全使用指南:如何避免代码生成中的潜在风险 【免费下载链接】CodeT5 Home of CodeT5: Open Code LLMs for Code Understanding and Generation 项目地址: https://gitcode.com/gh_mirrors/co/CodeT5 CodeT5作为一款强大的代码理解与生成AI模型&#x…...

Landsat8温度反演结果不准?可能是这5个参数没搞对(ENVI实战经验分享)

Landsat8温度反演精度提升:5个关键参数优化与ENVI实战解析 当你在深夜盯着屏幕上那些明显偏离预期的温度反演结果时,是否曾怀疑过ENVI软件出了问题?事实上,90%的温度反演误差都源于几个关键参数的设置不当。作为一位经历过数十个遥…...

从HC-SR04老用户视角,实测2020新版:盲区更小、功耗更低,但这两点不注意容易翻车

HC-SR04新版深度评测:老用户必看的5个升级细节与3个隐藏陷阱 第一次拿到2020版HC-SR04时,我差点以为发错了货——外观几乎和老版本一模一样,连螺丝孔位都分毫不差。但当我用示波器捕捉到仅2.1mA的工作电流时,才确信这确实是用上了…...

从ChatGPT到文心一言:揭秘大语言模型背后的Decoder-only架构设计

从ChatGPT到文心一言:大语言模型的Decoder-only架构设计哲学 当ChatGPT在2022年末掀起全球AI对话风暴时,一个关键设计选择引起了技术界的广泛讨论:为什么这些最先进的大语言模型都选择了纯Decoder架构?这背后隐藏着怎样的技术哲学…...

GLM-4.1V-9B-Base多场景落地:医疗影像辅助描述、零售货架识别、文旅导览图解

GLM-4.1V-9B-Base多场景落地:医疗影像辅助描述、零售货架识别、文旅导览图解 1. 模型介绍 GLM-4.1V-9B-Base是智谱开源的一款视觉多模态理解模型,专门针对图像内容识别、场景描述和目标问答等任务进行了优化。这个模型特别擅长处理中文视觉理解任务&…...

从取证到防御:实战解析BadUSB攻击与USB流量异常检测(Wireshark实战)

从取证到防御:实战解析BadUSB攻击与USB流量异常检测(Wireshark实战) 在企业内网安全防护中,USB设备带来的威胁往往被低估。去年某金融机构遭遇的供应链攻击事件中,攻击者通过伪装成键盘的BadUSB设备,在3分钟…...

第3期 工程车辆目标检测数据集

第3期 目标检测——工程车辆数据集 一、研究背景与意义 工程车辆是建筑工程机械的核心组成部分,涵盖汽车吊、随车吊、挖掘机、推土机、压路机、工程抢险车等品类,承担着工程建设中的运载、挖掘、吊运、平整、抢修等关键工作,大幅提升了建筑工程施工效率,显著降低人力投入…...