cc=arm-linux,针对基于嵌入式ARM的Linux系统的交叉编译
我尝试为嵌入式(定制)基于ARM的Linux系统编译一些C代码。我设置了一个名为arm-linux-gnueabi-gcc-4.4的交叉编译器的Ubuntu VM,因为它看起来像我所需要的。现在,当我编译我的代码与此GCC,它会产生一个二进制这样的:针对基于嵌入式ARM的Linux系统的交叉编译
$ file test1
test1: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked
(uses shared libs), for GNU/Linux 2.6.31,
BuildID[sha1]=0x51b8d560584735be87adbfb60008d33b11fe5f07, not stripped
当我尝试运行嵌入式Linux此二进制,我得到
$ ./test1
-sh: ./test1: not found
权限就足够了。我只能想象,什么是错的与二进制格式,所以我看了一些工作二进制作为参考:
$ file referenceBinary
referenceBinary: ELF 32-bit LSB executable, ARM, version 1, dynamically linked
(uses shared libs), stripped
我看到有一些差异,但我没有知识推导我需要什么修复以及我如何解决这个问题。有人可以解释哪些差异至关重要吗?
另一件事我看着都依赖关系:
$ ldd test1
libc.so.6 => not found (0x00000000)
/lib/ld-linux.so.3 => /lib/ld-linux.so.3 (0x00000000)
(有趣的是,这部作品在目标系统上虽然不能执行二进制)嵌入式系统只有可用libc.so.0。我想我需要告诉编译器我想链接的libc版本,但据我了解,gcc只是与它附带的版本链接,这是正确的吗?我能做些什么呢?
编辑:这是我使用的Makefile:
CC=/usr/bin/arm-linux-gnueabi-gcc-4.4
STRIP=/usr/bin/arm-linux-gnueabi-strip
CFLAGS=-I/usr/arm-linux-gnueabi/include
LDFLAGS=-nostdlib
LDLIBS=../libc.so.0
SRCS=test1.c
OBJS=$(subst .c,.o,$(SRCS))
all: test1
test1: $(OBJS)
$(CC) $(LDFLAGS) -o main $(OBJS) $(LDLIBS)
$(STRIP) main
depend: .depend
.depend: $(SRCS)
rm -f ./.depend
$(CC) $(CFLAGS) -MM $^>>./.depend;
clean:
rm -f $(OBJS)
include .depend
2012-09-20
flyx
+0
如果你对内存紧张,小得多的'uClibc'可以代替'glibc'。但是,您需要一个* gcc *编译器来构建使用'uClibc'。获得* gcc *,* uClibc *(或* glibc *)工作工具链和朋友以及从源代码构建Linux内核,Busybox和其他软件包的一种(相对)简单的方法是使用'BuildRoot'。使用良好的编译器+ libc组合,您可以静态链接您的应用程序,并独立于目标库。 –
cc=arm-linux,针对基于嵌入式ARM的Linux系统的交叉编译相关推荐
- 嵌入式基于Linux电机控制,基于嵌入式arm+linux平台的直流电机调速控制系统.pdf
2012--2013 学年第 二 学期 物电 学院期末考试卷 嵌入式系统与应用 学号 : 姓名 : 班级 : 成绩: 评语: 装 订 (考试题目及要求) 嵌入式大作: 采用实验箱上的电位器作为信号输入 ...
- 基于嵌入式ARM工控主板与X86工控主板的比较
基于嵌入式ARM工控主板相对于X86工控主板的优点: (1).功耗:这是ARM主板最大的优点之一,一般的VIA的X86主板,功耗都在40W左右或者以上,而ARM主板的功耗极低,EICB系列主板 ...
- 基于嵌入式ARM工控主板与X86工控主板的比较 1
基于嵌入式ARM工控主板相对于X86工控主板的优点: (1).功耗:这是ARM主板最大的优点之一,一般的VIA的X86主板,功耗都在40W左右或者以上,而ARM主板的功耗极低,EICB系列主板 ...
- Linux下基于qt的视频监控系统
目录 一.原始需求 二.环境安装 2.1 qt安装 2.2 opencv安装 三.系统设计 3.1. 整体流程设计 3.2 .数据传输交互流程 3.3 .数据库设计 四.关键代码 4.1.如何实现通信 ...
- 基于嵌入式ARM的mp3播放器的设计
一. 设计题目:基于ARM的mp3播放器的设计 二. 课程设计教学目的: 1.了解并掌握系统电路的一般设计方法,具备初步的独立设计能力: 2.掌握Unix/Linux系统原理: ...
- 嵌入式linux编码器,基于嵌入式平台的视频编码器的实现-嵌入式系统-与非网
引言 H.264是由ISO(国际标准化组织)/IEC(国际电工协会)和ITU(国际电信标准化部门)合作制定的新一代视频编码标准,目前正处于应用开发阶段.与以往的视频编码标准相比,h.264具有更高的压 ...
- Linux 手势识别,基于嵌入式Linux的手势识别技术研究
摘要: 随着科学技术的发展,手势识别技术也得到了很大的提升,基于视觉的手势识别逐渐成为人机交互技术中的研究热点.它应用于各种控制领域,如智能控制,机械手以及手语识别等.目前,嵌入式技术和相关产品也早已 ...
- gsm基于linux程序,基于嵌入式Linux下GSM模块的短信收发系统设计
摘要:移动通信中的短消息业务以其方便.可靠和价廉得到了广泛应用,本文在嵌入式Linux系统中,通过西门子MC35模块,实现了短信收发系统,该系统采用PDU短信模式,能支持中文短信.程序设计采用异步事件 ...
- 嵌入式linux dlna,基于嵌入式Linux的家用蓝光播放机上DLNA功能的实现
基于嵌入式Linux的家用蓝光播放机上DLNA功能的实现 随着网络的普及,各种支持上网和支持联网功能的家用电器设备的推广,人们迫切地寻求使其家庭网络的各种设备互通互联的方式,从而实现轻松的数字媒体共享 ...
- 嵌入式linux毕业设计,基于嵌入式Linux平台的智能小区终端系统设计与实现
内容简介: 硕士学位论文 基于嵌入式Linux平台的智能小区终端系统设计与实现,正文共69页. [摘要] 智能化小区通过采用智能终端系统,为住户提供了一种更加安全.舒适.方便.快捷和开放的智能化.信息 ...
最新文章
- python3 获取当前路径_如何使用python3获取当前路径及os.path.dirname的使用
- 基于OHCI的USB主机 —— OHCI(设计思路)
- Hadoop分布式文件系统hdfs的shell操作命令大全
- VTK:绕线旋转用法实战
- java emoji编码转换_java转换emoji表情
- 中文文本纠错算法实现
- Kafka分区分配策略(Partition Assignment Strategy
- 封包(一)(雷电模拟器+ProxyDroid+查尔斯3.93+WPE)
- 网络安全策略防御加固
- MATLAB---绘制三维图形函数实例介绍
- Batter Charger EC之间的数据交互
- 16. Segmentation
- iOS系统3DTouch全解析
- python卡尔曼滤波室内定位_基于Unscented卡尔曼滤波的室内定位
- 电脑如何破解wifi密码
- TCP三次握手四次挥手简介
- 下载landsat8 L2级产品的步骤
- 声网高纯:领域和方向要聚焦,用最专业的方法做最专业的事丨人物专访
- upload单独上传和统一上传
- 《2022中国数据智能产业图谱1.0版》重磅发布
热门文章
- hadoop之Combiner
- ios给控件添加动画效果
- 简单函数编写_strcpy、_stroverchg、_strcmp
- Spring-day02
- Educational Codeforces Round 45 (Rated for Div. 2)
- Testng 的数据源 驱动測试 代码与配置
- OpenCV学习:Windows+VS2010+OpenCV配置
- 信息安全之程序实现简单替换加密,并用字母频率统计进行破解
- TemplateDoesNotExist 异常
- open wrt 跟换主题_键盘还能这样玩,个性兼实用 达尔优归燕主题