news 2026/4/28 1:56:48

C++代码和可执行程序在x86和arm上的区别介绍

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C++代码和可执行程序在x86和arm上的区别介绍

从使用上来看,可执行程序肯定是不通用的。

armx86

生成的可执行程序大小都有差异呢。

但是,如果源码编译,如果环境类似,相同的源码可以直接移植。

例如:如下程序👇donut.cpp

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

#include <stdio.h>

#include <math.h>

#include <cstring>

#include <unistd.h>

intmain() {

floatA = 0, B = 0;

floati, j;

intk;

floatz[1760];

charb[1760];

printf("\x1b[2J");

for(;;) {

memset(b, 32, 1760);

memset(z, 0, 7040);

for(j = 0; j < 6.28; j += 0.07) {

for(i = 0; i < 6.28; i += 0.02) {

floatc =sin(i);

floatd =cos(j);

floate =sin(A);

floatf =sin(j);

floatg =cos(A);

floath = d + 2;

floatD = 1 / (c * h * e + f * g + 5);

floatl =cos(i);

floatm =cos(B);

floatn =sin(B);

floatt = c * h * g - f * e;

intx = 40 + 30 * D * (l * h * m - t * n);

inty = 12 + 15 * D * (l * h * n + t * m);

into = x + 80 * y;

intN = 8 * ((f * e - c * d * g) * m - c * d * e - f * g - l * d * n);

if(22 > y && y > 0 && x > 0 && 80 > x && D > z[o]) {

z[o] = D;

b[o] =".,-~:;=!*#$@"[N > 0 ? N : 0];

}

}

}

printf("\x1b[H");

for(k = 0; k < 1761; k++) {

putchar(k % 80 ? b[k] : 10);

A += 0.00004;

B += 0.00002;

}

usleep(30000);

}

return0;

}

效果一致。

编译过程都是:

g++ donut.cpp -o donut

生成文件大小:

arm→13.5 KB (13,856.00 字节)

x86→ 16.0 KB (16,384 字节)

很多软件都支持多平台,但是类似如下:

这些都是x86案例,并不支持arm。

支持arm会单独列出来。

ARM 与 X86 的概述

X86 指 Intel 处理器家族,从 8086 开始,随后发布 80186、80286、80386、80486、Pentium 和 Xeon 等。X86 中的 86 表示其早期处理器的最后 2 位数字。

ARM 最初由 ARM Holdings 以 Acorn RISC Machine 起家,开发了 ARM、ARM2 32 位处理器,其晶体管数量最少,功耗/散热更低。 X86 主导台式机、工作站、笔记本电脑和服务器市场,最初的芯片是 16 位,后来的版本是 32 位和 64 位。

ARM 在速度和长电池寿命方面超过了英特尔处理器。 与 Apple 和 VLSI 合作推出了一家新公司 Advanced RISC Machines。 ARM 处理器广泛用于移动设备。

X86和ARM是占据CPU市场的两大处理器,各有优劣。

它们可以在某些关键方面进行比较,例如它们采用的指令集、功耗、软件和应用程序。


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/28 1:44:05

从零构建AI哲学家模拟游戏引擎:LangGraph与RAG实战

1. 项目概述&#xff1a;从零构建一个AI哲学家模拟游戏引擎 如果你对AI智能体和游戏开发都感兴趣&#xff0c;并且厌倦了那些停留在Jupyter Notebook里的玩具项目&#xff0c;那么这个名为PhiloAgents的开源课程项目&#xff0c;绝对值得你投入时间。它的核心目标非常酷&#x…

作者头像 李华
网站建设 2026/4/28 1:43:22

车联网MQTT 消息处理的高并发优化

背景 在车联网场景中&#xff0c;数采平台需要实时接收数百至上千辆车辆的上报数据&#xff0c;涵盖实时遥测、心跳、故障、状态变更等多种消息类型。每辆车按 10~30 秒间隔上报&#xff0c;千辆车并发意味着每秒需要处理数十到上百条 MQTT 消息&#xff0c;且每条消息需经过解…

作者头像 李华
网站建设 2026/4/28 1:43:21

7天掌握Amlogic S9xx电视盒子终极改造:Armbian完整指南

7天掌握Amlogic S9xx电视盒子终极改造&#xff1a;Armbian完整指南 【免费下载链接】amlogic-s9xxx-armbian Supports running Armbian on Amlogic, Allwinner, and Rockchip devices. Support a311d, s922x, s905x3, s905x2, s912, s905d, s905x, s905w, s905, s905l, rk3588,…

作者头像 李华
网站建设 2026/4/28 1:42:24

终极Dark Reader完全指南:从零基础到精通全网深色模式

终极Dark Reader完全指南&#xff1a;从零基础到精通全网深色模式 【免费下载链接】darkreader Dark Reader Chrome and Firefox extension 项目地址: https://gitcode.com/gh_mirrors/da/darkreader 你是否曾在深夜浏览网页时&#xff0c;被刺眼的白光灼伤双眼&#xf…

作者头像 李华
网站建设 2026/4/28 1:37:59

boot整合AgentScope智能体

<?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 https://…

作者头像 李华