快速业务通道

loudmouth库在arm开发板linux环境下的移植

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-02
针对环境linux本身的.要知道,pkg-config可以对*.pc文件直接进行解析,这里我们可以这样:
Empire CMS,phome.net
pkg-config --cflags --libs /home/peter/workspace/usr/lib/pkgconfig/glib-2.0.pc 后边的目录要修改一下,改为自己的工作目录下的地址,也就是$ROOTFS_DIR/usr/lib/pkgconfig/glib-2.0.pc.,我把Makefile写一下. project = test
cc = arm-linux-gcc
$(project) : $(project).c
$(cc) -g -o $@ `pkg-config --cflags --libs /home/peter/workspace/usr/lib/pkgconfig/glib-2.0.pc /home/peter/workspace/usr/lib/pkgconfig/loudmouth-1.pc` contentlt; 其实这里loudmouth-1.pc理论上会自动包含glib的目录的,但是如果你运行一下pkg-config你会发现,它包含的是/usr/local/lib/...或者其他目录(如果你在机器上安装glib的时候修改过的话),这个glib的地址是错的,因此需要再将glib-2.0.pc加进去. 这样,编译工作也完成了.我们假设已经有了一个链接好的test文件了,下面要做的就是放到arm板上跑就是了.这里需要再参考开发板的手册,一般手册上都会给出一个用户程序如何下载到开发板.我建议大家用nfs这个方式,也就是在开发平台上建立nfs服务,然后在开发板上mount,这样效率可以非常高,测试的时候只要make一下,然后切换到串口通讯界面就可以直接运行了.(根本没有下载的过程,运行的时候网线上小电流嗖的一下搞定……)具体步骤这里也不再敷述.
Empire CMS,phome.net
在运行前记得将我们工作目录下的lib下的文件放到开发板的/lib下,否则会报错,说动态链接库无法找到.我在复制库文件的时候发现开发板空间不足……这里gobject, gthread ... 是没用的,只需要glib*和loudmouth*就可以了. 然后,挂上nfs目录,到test所在的文件夹,./test一下试试吧~ 5.总结
下面解释一下我对这个过程的理解.两个移植的过程是类似的,我就以glib的移植过程举例.可以看到,脚本开始对一些全局变量做了设置,主要这里要提一下ROOTFS_DIR.它是我们所有工作的一个工作目录.这个目录在linux下通过源代码安装软件的时候一般是可以通过./configure --prefix=$ROOTFS_DIR实现的. 下面我顺便说一下我对“linux三部曲”的理解吧: 这里./configure其实是生成各种配置文件,而在配置文件中需要用到这个目录的名称.实际的configure的工作是不会向这个目录中写入内容的;之后的make就是具体的编译过程,会生成我们所需要的二进制文件,这些工作应该也是在当前的目录下完成的;的make install才会将所有生成了的有用的文件放到当时在./configure时prefix参数所指定的目录中去. ,我们在执行了以上的脚本后,就可以在$ROOTFS_DIR里看到的成果了.这里,我们主要需要的是头文件(一般是*.h)和链接库文件(一般是*.so),前者在我们以后写应用程序时进行编译时会用到,而后者会在链接以及运行的时候动态调用. 当时觉得移植是一个很困难的过程吧,你想,一个玩意要从pc上放到arm上,我靠那区别得多大啊!其实,现在很多人已经把繁冗的过程帮我们做好了.我们会发现,很多情况下,我们只需要修改一下编译器,从gcc换成arm-linux-gcc(当然还可以是别的什么玩意)就好了.可能还要在设置的时候加入一些例如--host, --target, --build的参数(build好像不用设置的,应该就是编译环境,默认的应该就是可以的).这里我觉得主要是需要对程序的编译过程,以及动态链接的基本知识的了解,就可以了.
Empire CMS,phome.net
周末有空,这里把我前两天移植loudmouth的过程也写了一下~不在公司,这些大多是靠一些记录和记忆来写的,如果有什么问题,欢迎大家email讨论:xzpeter@gmail.com.当然了,我对自己的底子还是有一定认识的,大家不要对我抱太大希望……over.

Empire CMS,phome.net

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号