loudmouth库在arm开发板linux环境下的移植
作者 佚名技术
来源 Linux系统
浏览
发布时间 2012-05-02
上次说到了将loudmouth在pc机上顺利编译和运行,这次主要讲将其移植到arm开发板的过程.
loudmouth库是需要glib-2.0和gnutls的支持的,但是后者是不的.在移植loudmouth之前需要先将glib-2.0移植到arm上.
这个移植过程我主要是参考了下面这篇文章:
http://ppbabytiger.spaces.live.com/blog/cns!549302309A9552BE!397.entry
这是一个移植webkit的文章,主要是里边同时用到了glib-2.0的库.
下面我就讲一下我的移植步骤.
1.创建交叉编译环境
当然是要创建交叉编译环境,这个过程一般在开发板的使用手册里有明确的说明,大部分的开发板应该是直接将交叉编译环境打包放在配套的光盘里,我们要做的就是解包,然后在PATH里加一下bin的地址就好了.当然了,所有的工作是在linux下完成.只要arm-linux-gcc可以工作就可以了.这里就不再敷述了. 2.glib-2.0的移植 这是loudmouth的唯一依赖的库.就是按照上文中我提到的地址中的方法即可.这里我选择的是glib-2.12.0这个版本.可以在记得要看文章中全局变量的一些设定,可以将下面的内容保存为cross_glib.sh:
export ARCH=arm export ROOTFS_DIR=/home/peter/workspace CC=$ARCH-linux-gcc echo ac_cv_type_long_long=yes>$ARCH-linux.cache echo glib_cv_long_long_format=ll>>$ARCH-linux.cache echo glib_cv_stack_grows=no>>$ARCH-linux.cache echo glib_cv_uscore=no>>$ARCH-linux.cache echo ac_cv_func_posix_getpwuid_r=yes>>$ARCH-linux.cache make distclean ./configure --prefix=$ROOTFS_DIR/usr --cache-file=$ARCH-linux.cache --build=i686-pc-linux-gnu --target=$ARCH-linux --host=$ARCH-linux 比较特殊的地方就是先要写好这个arm-linux.cache这个文件.这里,ROOTFS_DIR是我们的工作目录,可以任意的修改,之后的一些相关的参数也要跟随这个目录而做相应的改动.然后在shell里运行: chmod a x cross_glib.sh ./cross_glib.sh 如果配置过程没问题,下面就可以踏实的make了. make
make install 我一般会将配置和编译分开做,这样我觉得碰到问题的时候会比较清楚,可以直接将这个过程放到脚本里. 3.loudmouth-1.0的移植 对于loudmouth的移植和上面的方法类似.请参见下面的脚本: #!/bin/bash export ROOTFS_DIR=/home/peter/workspace export ARCH=arm export CC=$ARCH-linux-gcc ./configure --prefix=$ROOTFS_DIR/usr --build=i686-pc-linux-gnu --target=$ARCH-linux --host=$ARCH-linux --with-ssl=no "CFLAGS=-I$ROOTFS_DIR/usr/include/glib-2.0 -I$ROOTFS_DIR/usr/lib/glib-2.0/include" "LIBS=-L$ROOTFS_DIR/usr/lib -lglib-2.0" make make install 这里应该是要指定一下glib的头文件和库文件的地址.我这里还是使用的--with-ssl=no的方式. 经过这个过程后,在$ROOTFS_DIR/usr/lib就可以看到编译好的glib的库文件还有loudmouth的库文件了.我们可以用file命令检查一下,看看是否是arm的格式. 4.嵌入式应用程序中loudmouth库的使用 下面,我们就可以开始使用了.我这里讲的当然不是怎么写源程序,这要参考loudmouth的手册.我还是主要说编译和运行的方法. 编译的话,应该可以想到,直接arm-linux-gcc mysource.c肯定是不行的.主要是要告诉编译器需要的库和头文件的具体位置.这里我们还是可以用到pkg-config这个东西的.我们这里不能直接pkg-config --cflags glib-2.0,要知道,现在机器里会有两个glib,一个是环境linux本身要使用的,另一个是我们想要移植到arm上的,这样调用返回的flags标志都是 |
||
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于loudmouth库在arm开发板linux环境下的移植的所有评论