- 博客(7)
- 收藏
- 关注
原创 Linux x86移植ARM64:qemu-aarch64-static + chroot 原生编译教程
本方案介于「交叉编译」与「完整 ARM64 物理机原生编译」之间。在 x86_64 主机上,依靠qemu-user-static 用户态模拟 + binfmt_misc + chroot,构建 ARM64 完整 rootfs 环境。在 chroot 内部执行的 gcc、make 全部为 ARM64 原生程序,由 QEMU 透明指令翻译,实现x86 机器上模拟 ARM64 原生编译。# 创建 4GB raw 镜像# 或创建 qcow2(更节省空间,支持快照)# 格式化为 ext4(raw 直接格式化;
2026-08-15 22:47:23
367
原创 Linux x86移植ARM64:ARM64原生编译环境配置教程
✅优点环境简单,无需交叉工具链使用 apt 直接安装 ARM64 版本依赖库,不存在架构混淆问题不会出现头文件、库文件架构不匹配的典型移植坑❌缺点ARM 硬件算力有限,大型项目编译速度远低于 x86 主机不适合大规模持续集成构建。
2026-08-14 10:13:23
229
原创 Linux x86移植ARM64:交叉编译环境配置教程
适用于需要自定义 glibc 版本、GCC 版本、内核头文件版本、嵌入式精简环境等高级场景。⚠️注意:crosstool-ng 构建工具链需要较长时间(30 分钟 ~ 数小时,取决于网速和 CPU),并占用约 3~5GB 磁盘空间。
2026-08-14 10:12:13
242
原创 Linux x86移植ARM64:指针/数据截断、函数指针截断、段错误专项排查教程
long 是x86移植ARM64最大隐形坑:x86_64-long=8字节,ARM64-long=4字节,绝对禁止存储指针和地址;指针与整型互转必须使用 uintptr_t,是C标准跨架构唯一合法方案;指针截断、隐式函数问题编译无报错,仅运行时崩溃,必须依赖编译强告警+GDB调试双重排查;严禁无头文件声明调用函数:ARM64下隐式函数默认int返回值,直接截断64位函数指针;所有架构判断代码必须兼容,不能仅适配x86_64;ARM64严格内存对齐,禁止照搬x86非对齐访问、手动紧凑对齐逻辑。
2026-08-11 10:59:00
373
原创 Linux x86移植ARM64:编译成功运行找不到库完整排查教程
ldd 只能看编译时 -l 静态依赖,完全看不到 dlopen 动态加载库,这是90%移植问题的根源;链接器默认开启,无代码调用的库会被自动丢弃,-l 链接不代表一定会保留依赖;头文件无架构区分、so严格区分架构,编译成功不代表架构匹配;dlopen 不依赖编译链接参数,只依赖运行时搜索路径、文件架构、子依赖完整性;生产环境禁止依赖,优先使用 RUNPATH + $ORIGIN 实现自包含程序。
2026-08-11 10:57:13
369
原创 SD-WAN网络搭建
软件定义广域网可将能上网的主机加入一个虚拟的局域网中,其相互可正常通讯,并可以此为网关,允许访问其所在网络使用n2n、OpenVPN等工具,使客户端网络互通
2021-06-16 09:22:38
3852
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1