移植开源软件到嵌入式Linux系统技术攻略_第1页
移植开源软件到嵌入式Linux系统技术攻略_第2页
移植开源软件到嵌入式Linux系统技术攻略_第3页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、移植开源软件到嵌入式 Linux 系统技术攻略移植开源软件到嵌入式 Linux 系统技术攻略一、在 PC 机 Linux 上安装适宜的交叉编译工具链。这一步很简单,一般就是将工具链的压缩包解压到某个路径下, 就完 成了安装。我们这里假设目标单板是 arm 处理器,运行 Linux 系统,用的工具链是 arm-linux-gcc-3. 4. 1, 工具链安装路径是 /opt/arm-1inux-gcc-3. 4. 1 。并且,为了使用方便,我们己经将 /opt/arm-1 inux-gcc-3. 4. 1/bin目录添加到PATH环境变量中了。这样就可以直接使用armTinux-gcc 、arm

2、-linux-ld等命令了。如果不这样做的话,后面使用 /设定编译器时,就得用 /opt/arm-1inux-gcc-3. 4. 1/bin/arm-1inux-gcc了。二、开源库的移植由于有些开源应用程序本身又依赖于一些开源库。因此,我们的 移植 步骤是,先移植开源库,再移植开源应用程序。不然的话,开 源应用程 序的编译就会成问题。因此,这里先介绍开源库的移植。库的移植,其实就是对工具链自带的库进行了扩充。例如,假设上述 arm 匚具链的 stdio. h 文件路径为 /opt/arm-1inux-gcc-3. 4. 1/include/stdio. h那么,我们移植完开源库之后:/opt

3、/ar 旷 linux-gcc-3. 4. 1/include/ 下面就会多出一些头文件。/opt/arm-1 inux-gcc3. 4. 1/lib/下面就会多出一些 .a 文件 或 .so文件。当然,但凡单板上用到的 /opt/arm-1 inux-gcc-3. 4. 1/lib/ 下面 的 .s 文件,不管是工具链自带的,还是我们移植的,都需要拷贝 到单板的根 文件系统的 /usr/lib/S 录中。好了,下而说说具体移植步骤。假设我们己经获取并解压了开源库的源码包, 并且在 shell 中己 经进 入了源码包的根目录。接下来的工作,分三步进行。1. 配置注意,这是最关键的一步。在这一步

4、中,我们要指定诸如目标单 板的 操作系统、CPU工具链等信息。如何指定这些信息呢,不同的软件可能会有相同。我们如果不熟 悉, 就需要仔细阅读源码包中附带的诸如 READMEINSTALL等文件。这些文 件会告诉我们,如何指定这些信息。一般来讲,常见的配置方法,是通过 ./configure 命令进行。当 然, 有些开源包,可能叫 ./config 或其他名字。这并不重要。这些 configure 通常都是很大的 shell 脚本,应该都是用自动化 工具 生成的。因此,我们不用费力去读他的内容。以 opensll 为例。配置命令为:./config-pref ix=/ opt/arm-1inux

5、-gcc-3. 4. 1/linux-elf:arm linux-gcc这就指定了目标类型是 linux-elf, 工具链是 arm-linux-gcco安装路径是: /opt/arm-1 inux-gcc-3. 4. 1/o 注意,这个路径是 交 叉工具链 include 目录及 lib 目录的父目录。因为头文件及编译 后的库 文件,需要分别安装到 include 与 lib 目录中。当然,在配置命令中, 我们还可以指定其他选项, 以做进一步的 定制。般来讲,可以通过 ./configure-help命令查看所支持的可定 制选 项。该命令会输出所支持的各种选项,选项的含义,以及默认是否打 开

6、等 信息。当然,对于 opens 11 来说,这里是用 ./config-help命令。如果这一步失败, 通常是编译系统依赖的某个工具没找到。 这个 好办, 安装一下就是了。2. 编译这就简单了,一般来说,一个 make命令搞定3. 安装这就简单了,一般来说,一个 makeinstal 1 命令搞定对丁?本例来说,由丁指定了安装路径为: -prefix=/opt/arm- linux-gcc-3. 4. 1/因此,头文件 例如, openssl/ssl.h 及编译后的库文件 如 libcrypto. alibssl. a, 会分别被安装至 lj/opt/arm-1 inux-gcc- 3. 4

7、. 1/include -Aj/opt/arm-linux-gcc-3. 4. 1/lib目录中。这样一来,就相当于扩充了 /opt/arm-linux-gcc-3. 4. 1 自带的库。接下来 , 就可以编译使用了 opensll 的开源应用程序了。三、开源应用程序的移植假设我们己经获取并解压了开源应用程序的源码包,并且在 shell 中 己经进入了源码包的根目录。接下来的工作,也分三步进 行。1. 配置和开源库的移植类似。在这一步中,我们要指定诸如目标单板的 操作 系统、CPU工具链等信息。如果不熟悉,同样需要需要仔细阅读源码包中附带的诸如 README> INSTALL等文件。这些

8、文件会告诉我们,如何指定这些信息。以 e2fsprogsl. 42. 5 为例。配置过程如下可能相对传统一点mkdirrelease cdrelease/ /c on figure一-host=arm-li nu xCC=arm-li nu x-gcc当然,我们同样可以带上更多的参数,做更多的 ' 定制。例如,带上参数LDFLAG二-static 从而指定静态链接。如果这一步失败,有两个原因:编译系统依赖的某个工具没找到。这个好办,安装一下就是 了。b.开源应用程序的某个功能项所依赖的某个开源库没有找到。这种问题,有两个解决方法:一是移植此开源库,按照前面的方法;二是通过 -disable-funcname 关闭此功能项,如果确实用不到 该功 能项的话。2. 编译这就简单了,一般来说,一个 make命令搞定3. 安装这一步,需要将上述编译出的可执行文件、程序运行需要用到的 配置 文件、程序运行需要用到的所有动态库文件无论是工具链自带 的库文 件,还是我们移植的库文件,都拷贝到单板的根文件系统的 相应的目 录下就行了。库文件拷贝到 /usr/lib/ 目录中。配置文件拷贝到 /etc/ 下面适宜的路径中。可执行文件拷贝到/bin或/usr/bin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论