我尝试为嵌入式(定制)基于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系统的交叉编译相关推荐

  1. 嵌入式基于Linux电机控制,基于嵌入式arm+linux平台的直流电机调速控制系统.pdf

    2012--2013 学年第 二 学期 物电 学院期末考试卷 嵌入式系统与应用 学号 : 姓名 : 班级 : 成绩: 评语: 装 订 (考试题目及要求) 嵌入式大作: 采用实验箱上的电位器作为信号输入 ...

  2. 基于嵌入式ARM工控主板与X86工控主板的比较

    基于嵌入式ARM工控主板相对于X86工控主板的优点:     (1).功耗:这是ARM主板最大的优点之一,一般的VIA的X86主板,功耗都在40W左右或者以上,而ARM主板的功耗极低,EICB系列主板 ...

  3. 基于嵌入式ARM工控主板与X86工控主板的比较 1

    基于嵌入式ARM工控主板相对于X86工控主板的优点:     (1).功耗:这是ARM主板最大的优点之一,一般的VIA的X86主板,功耗都在40W左右或者以上,而ARM主板的功耗极低,EICB系列主板 ...

  4. Linux下基于qt的视频监控系统

    目录 一.原始需求 二.环境安装 2.1 qt安装 2.2 opencv安装 三.系统设计 3.1. 整体流程设计 3.2 .数据传输交互流程 3.3 .数据库设计 四.关键代码 4.1.如何实现通信 ...

  5. 基于嵌入式ARM的mp3播放器的设计

    一.       设计题目:基于ARM的mp3播放器的设计 二.       课程设计教学目的: 1.了解并掌握系统电路的一般设计方法,具备初步的独立设计能力: 2.掌握Unix/Linux系统原理: ...

  6. 嵌入式linux编码器,基于嵌入式平台的视频编码器的实现-嵌入式系统-与非网

    引言 H.264是由ISO(国际标准化组织)/IEC(国际电工协会)和ITU(国际电信标准化部门)合作制定的新一代视频编码标准,目前正处于应用开发阶段.与以往的视频编码标准相比,h.264具有更高的压 ...

  7. Linux 手势识别,基于嵌入式Linux的手势识别技术研究

    摘要: 随着科学技术的发展,手势识别技术也得到了很大的提升,基于视觉的手势识别逐渐成为人机交互技术中的研究热点.它应用于各种控制领域,如智能控制,机械手以及手语识别等.目前,嵌入式技术和相关产品也早已 ...

  8. gsm基于linux程序,基于嵌入式Linux下GSM模块的短信收发系统设计

    摘要:移动通信中的短消息业务以其方便.可靠和价廉得到了广泛应用,本文在嵌入式Linux系统中,通过西门子MC35模块,实现了短信收发系统,该系统采用PDU短信模式,能支持中文短信.程序设计采用异步事件 ...

  9. 嵌入式linux dlna,基于嵌入式Linux的家用蓝光播放机上DLNA功能的实现

    基于嵌入式Linux的家用蓝光播放机上DLNA功能的实现 随着网络的普及,各种支持上网和支持联网功能的家用电器设备的推广,人们迫切地寻求使其家庭网络的各种设备互通互联的方式,从而实现轻松的数字媒体共享 ...

  10. 嵌入式linux毕业设计,基于嵌入式Linux平台的智能小区终端系统设计与实现

    内容简介: 硕士学位论文 基于嵌入式Linux平台的智能小区终端系统设计与实现,正文共69页. [摘要] 智能化小区通过采用智能终端系统,为住户提供了一种更加安全.舒适.方便.快捷和开放的智能化.信息 ...

最新文章

  1. python3 获取当前路径_如何使用python3获取当前路径及os.path.dirname的使用
  2. 基于OHCI的USB主机 —— OHCI(设计思路)
  3. Hadoop分布式文件系统hdfs的shell操作命令大全
  4. VTK:绕线旋转用法实战
  5. java emoji编码转换_java转换emoji表情
  6. 中文文本纠错算法实现
  7. Kafka分区分配策略(Partition Assignment Strategy
  8. 封包(一)(雷电模拟器+ProxyDroid+查尔斯3.93+WPE)
  9. 网络安全策略防御加固
  10. MATLAB---绘制三维图形函数实例介绍
  11. Batter Charger EC之间的数据交互
  12. 16. Segmentation
  13. iOS系统3DTouch全解析
  14. python卡尔曼滤波室内定位_基于Unscented卡尔曼滤波的室内定位
  15. 电脑如何破解wifi密码
  16. TCP三次握手四次挥手简介
  17. 下载landsat8 L2级产品的步骤
  18. 声网高纯:领域和方向要聚焦,用最专业的方法做最专业的事丨人物专访
  19. upload单独上传和统一上传
  20. 《2022中国数据智能产业图谱1.0版》重磅发布

热门文章

  1. hadoop之Combiner
  2. ios给控件添加动画效果
  3. 简单函数编写_strcpy、_stroverchg、_strcmp
  4. Spring-day02
  5. Educational Codeforces Round 45 (Rated for Div. 2)
  6. Testng 的数据源 驱动測试 代码与配置
  7. OpenCV学习:Windows+VS2010+OpenCV配置
  8. 信息安全之程序实现简单替换加密,并用字母频率统计进行破解
  9. TemplateDoesNotExist 异常
  10. open wrt 跟换主题_键盘还能这样玩,个性兼实用 达尔优归燕主题