当前位置:首页 » 编程软件 » 树莓派gcc编译x86二进制

树莓派gcc编译x86二进制

发布时间: 2022-08-18 16:35:12

❶ x86-64上怎么安装GCC,编译32位和64位程序,谢谢。

如果大多数类unix系统应当是自带gcc的 编译程序时使用不同的参数就可以选择编译成64位或者32位. 如果要求性能,推荐使用icc

linux gcc安装 编译gcc

编译gcc 时 不识别的参数--host-i386-redhat-linux,你把这个参数去掉试一下看。
也可以在原光盘里面找gcc的rpm包直接安装,不用编译那么麻烦

❸ 64位linux下的GCC如何编译出一个32位可执行程序

理论上安装支持环境,之后 64 位的 gcc 编译成 32 位程序,就加 -m32 参数即可。

当然还一个办法是装个 32 位的 gcc 。

另外,交叉编译也适用于 x86 架构。

不过这么编译经常会出现各种问题,所以编译 32 位的程序,最好还是用 32 位系统。

不一定重装,用 chroot 和 setarch 命令配合即可弄出一个 32 位的子系统。

❹ x86 平台编译的二进制包是否都不能运行在树莓派中

firmware:树莓派的交叉编译好的二进制内核、模块、库、bootloader
linux:内核源码
tools:编译内核和其他源码所需的工具——交叉编译器等
我们只需要以上三个文件即可,下面的工程可以了解一下

documentation:树莓派离线帮助文档,教你如何使用、部署树莓派(树莓派官方使用教程)
userland:arm端用户空间的一些应用库的源码——vc视频硬浮点、EGL、mmal、openVG等
hats:Hardware Attached on Top,树莓派 B+型板子的扩展板资料
maynard:一个gtk写成的桌面环境
scratch:一个简易、可视化编程环境
noobs:一个树莓派镜像管理工具,他可以让你在一个树莓派上部署多个镜像
weston:一个应用程序
target_fs:树莓派最小文件系统,使用busybox制作
quake3:雷神之锤3有线开发源码firmwareb
2)下载方法:
a、网页直接下载:

点到所需要下载的工程,左上角选版本,右方有一个download ZIP按钮可直接下载(笔者下载完成后,在linux中解压提示出错,windows又非常慢切内核建议不要在windows环境解压,所以笔者不建议使用这种办法)

b、使用git下载
$ mkdir raspeberrypi_src
$ cd raspberrypi_src
$ git clone git://github.com/raspberrypi/firmware.git
$ git clone git://github.com/raspberrypi/linux.git
$ git clone git://github.com/raspberrypi/tools.git

会得到三个文件夹
firmware linux tools

2、编译、提取内核及其模块

1)获得内核配置文件
在运行的树莓派中运行:
$ls /proc/
可看到一个叫config.gz的文件,他是当前的树莓派配置选项记录文件,我们将他拷出,放入我们的内核源码目录树下

$cp /proc/config /home/pi
我们这里使用前面交过的samba拷出并拷入内核源码目录下,不熟悉的人可参考前面文章

在linux内核源码下执行:
$zcat config.gz > .config

2)配置、编译内核
a、修改内核源码makefile ARCH类型和编译器路径
$vi Makefile +195
找到以上类似代码,改为如图所示

b、查看、修改配置选项
$make menuconfig
可出现以下界面

如果不做修改,直接选中exit即可(注意使用键盘操作)

c、编译内核镜像
$make
在arch/arm/boot目录下可以看到一个叫zImage的文件,就是我们新的内核

但是树莓派需要另外一种格式的镜像,需要进行处理一下,执行以下命令
$cd tools/mkimage

$./imagetool-uncompressed.py ../../linux/arch/arm/boot/zImage
即可在当前文件夹下看到一个叫:kernel.img的文件,就是我们需要的新内核了

d、提取moles
上一步其实不但编译出来了内核的源码,一些模块文件也编译出来了,这里我们提取一下
$cd raspberrypi_src
$mkdir moles
$cd linux
$ make moles_install INSTALL_MOD_PATH=../moles

即可在moles得到我们需要的模块文件

2、升级RPi的kernel、Firmware、lib
将SD卡拔下插在电脑上(可使用读卡器)
1)升级内核
将新编好的内核拷入SD卡,改名为:kernel_new.img
打开boot目录下
找到config.txt文件,加入:kernel=kernel_new.img这一行

2)升级boot
将firmware/boot/目录下 以下文件拷入SD卡boot目录:fbootcode.bin fixup.dat fixup_cd.dat start.elf

3)更新vc库及内核moles
将第3步d步中编译出来的moles/lib/moles拷入树莓派文件系统/lib下

❺ 树莓派用gcc编译出来的代码(只用ANSI C)能直接给stm8/stm32用吗

既然都已经编译出来了,那就不是代码而是可执行程序了。树莓派的处理器BCM2835(核心为ARM11)与STM8/STM32明显不同,底层硬件、外设均不兼容,所以树莓派的可执行程序是不能直接给STM8/STM32使用的。但树莓派的应用层代码(不涉及到底层硬件资源的代码)可以移植到STM8/STM32的工程中编译后给STM8/STM32使用。

❻ linux 用GCC编译器编译程序的问题,急

1,如果在不同系统架构下(x86, powerpc)产生的二进制文件不一样

2,GCC是一样的,但是系统更新过吗? 不同的程序库(如升级更新了libc6),编译结果也会不同

3,如果该工程使用到了一些时间常量等(如gnome-about程序包含一个编译时间的常量),在每次编译时也会产生不同结果

4,GCC的问题,如果你的GCC是自己编译的,编译时又没有选择编译自检,就可能得到一个有问题的GCC,它的编译结果是不可靠的

❼ C语言如何编译成可以直接在CPU运行的二进制码

路过。。。话说你要二进制文件干啥呢,我的大学老师告诉我,懂二进制的全世界就只有那么几个

❽ 64位linux下面的GCC如何编译出一个32位可执行程序

理论上安装支持环境,之后 64 位的 gcc 编译成 32 位程序,就加 -m32 参数即可。

当然还一个办法是装个 32 位的 gcc 。

另外,交叉编译也适用于 x86 架构。

不过这么编译经常会出现各种问题,所以编译 32 位的程序,最好还是用 32 位系统。

不一定重装,用 chroot 和 setarch 命令配合即可弄出一个 32 位的子系统。

❾ 如何用gcc编译包含大数组的程序,x86

static char buff[3G];是不行的
char buff[3G];就能编译通过了

此时gcc不可以用-static选项, 要加-O2
5分钟后运行看看

热点内容
精易编程 发布:2025-02-07 00:49:10 浏览:464
访问桂纶镁 发布:2025-02-07 00:49:00 浏览:937
安卓免费扫描哪个好 发布:2025-02-07 00:47:40 浏览:90
金蝶修改服务器地址 发布:2025-02-07 00:41:08 浏览:867
安卓手机版的蒸汽平台在哪里下载 发布:2025-02-07 00:29:04 浏览:454
php自学中心 发布:2025-02-07 00:28:50 浏览:270
手机卡在哪里设置密码 发布:2025-02-07 00:21:25 浏览:707
解压哄睡音频 发布:2025-02-07 00:19:56 浏览:159
数据库系统第六版答案 发布:2025-02-07 00:06:10 浏览:971
fut加密毛发怎么样 发布:2025-02-07 00:06:01 浏览:869