工具使用_docker容器_crossbuild

server/2024/11/25 12:37:49/

1. 工具简介

2. 工具使用

拉取 multiarch/crossbuild 镜像:

docker pull multiarch/crossbuild

创建工作目录和示例代码:

mkdir -p ~/crossbuild-test
cd ~/crossbuild-test

创建 helloworld.c :

#include <stdio.h>int main() {printf("Hello, World!\n");return 0;
}

使用 Docker 在 WSL 中进行编译:

2.1 x86_64 架构

运行 Docker 指令:

docker run --rm -v $(pwd):/workdir multiarch/crossbuild make helloworld

验证生成的二进制文件:

file helloworld
./helloworld

2.2 ARM 架构

2.2.1 ARM 32

运行 Docker 指令:

docker run --rm -v $(pwd):/workdir -e CROSS_TRIPLE=arm-linux-gnueabi multiarch/crossbuild make helloworld

验证生成的二进制文件:

file helloworld

2.2.1 ARM 64

运行 Docker 指令:

docker run --rm -v $(pwd):/workdir -e CROSS_TRIPLE=aarch64-linux-gnu multiarch/crossbuild make helloworld

验证生成的二进制文件:

file helloworld

2.3 MIPS 架构

运行 Docker 指令:

docker run --rm -v $(pwd):/workdir -e CROSS_TRIPLE=mipsel-linux-gnu multiarch/crossbuild make helloworld

验证生成的二进制文件:

file helloworld

3. 实际使用

3.1 预备工作

确保 crossbuild-master 和 bzip2 源码目录结构正确:

C:\Users\22845\Desktop\crossbuild-master
├── source
│   └── bzip2-master
│       ├── Makefile
│       └── (other bzip2 source files)

确保 Docker 和 multiarch/crossbuild 镜像可用:

docker --version
docker pull multiarch/crossbuild

在 WSL 中进入项目目录:

cd /mnt/c/Users/22845/Desktop/crossbuild-master/source/bzip2-master

确认 Makefile 存在:

ls -l Makefile

3.2 项目编译

3.2.1 x86_64 架构

运行 Docker 指令:

make cleandocker run --rm -v $(pwd):/workdir multiarch/crossbuild make

验证生成的二进制文件:

file bzip2

3.2.1 ARM 架构

运行 Docker 指令:

make cleandocker run --rm -v $(pwd):/workdir -e CROSS_TRIPLE=arm-linux-gnueabi multiarch/crossbuild make

验证生成的二进制文件:

file bzip2


http://www.ppmy.cn/server/144797.html

相关文章

Java NIO 核心知识总结

在学习 NIO 之前&#xff0c;需要先了解一下计算机 I/O 模型的基础理论知识。还不了解的话&#xff0c;可以参考我写的这篇文章&#xff1a;Java IO 模型详解。 一、NIO 简介 在传统的 Java I/O 模型&#xff08;BIO&#xff09;中&#xff0c;I/O 操作是以阻塞的方式进行的。…

微信小程序点击跳转打电话功能

wx.makePhoneCall 属性类型默认值必填说明phoneNumberstring是需要拨打的电话号码successfunction否接口调用成功的回调函数failfunction否接口调用失败的回调函数completefunction否接口调用结束的回调函数&#xff08;调用成功、失败都会执行&#xff09; <view class&q…

闲聊?泳池清洁机器人?

本章就来聊聊泳池清洁机器人行业。"博主本身就身在这个行业~~"&#xff0c;这个行业的前景还是不错的(为什么这么说&#xff1f;)。 据统计&#xff0c;目前全球有3692万个泳池&#xff0c;每年呈持续增长态势。预计到2026年&#xff0c;会增至3900多万个泳池&#x…

【大数据学习 | Spark-Core】Spark的分区器(HashPartitioner和RangePartitioner)

之前学过的kv类型上面的算子 groupby groupByKey reduceBykey sortBy sortByKey join[cogroup left inner right] shuffle的 mapValues keys values flatMapValues 普通算子&#xff0c;管道形式的算子 shuffle的过程是因为数据产生了打乱重分&#xff0c;分组、排序、join等…

【汇编】有关AI人工智能

随着 AI 技术的不断发展&#xff0c;AI大模型正在重塑软件开发流程&#xff0c;从代码自动生成到智能测试&#xff0c;未来&#xff0c;AI 大模型将会对软件开发者、企业&#xff0c;以及整个产业链都产生深远的影响。欢迎与我们一起&#xff0c;从 AI 大模型的定义、应用场景、…

java抽奖系统(一)

1. 项⽬介绍 1.1 背景 随着数字营销的兴起&#xff0c;企业越来越重视通过在线活动来吸引和留住客⼾。抽奖活动作为⼀种有效的营 销⼿段&#xff0c;能够显著提升⽤⼾参与度和品牌曝光率。于是我们就开发了以抽奖活动作为背景的Spring Boot项⽬&#xff0c;通过这个项⽬提供⼀…

mysql约束和高级sql

约束 MySQL中的约束用于定义表中数据的规则&#xff0c;以确保数据的准确性和可靠性。以下是MySQL中常用的一些约束类型及其概述&#xff1a; PRIMARY KEY&#xff08;主键&#xff09;&#xff1a;唯一标识表中每条记录的字段或字段组合&#xff0c;一个表中只能有一个主键。…

第2.3 AI文本—prompt入门

AIGC&#xff08;生成式人工智能&#xff09;对我们教师工作帮助是非常大的。我们教师要充分认识AIGC技术在辅助教学工作、行政工作、个人晋升成长、日常工作的重要性&#xff0c;并能熟练掌握国内主流的AIGC工具&#xff0c;最终达成教学工作提质增效目的。 辅助教学工作&…