linux一些库文件的交叉编译
参考出处:一步步教你交叉编译嵌入式linux GUI-directfb+gtk
一、注意点:
1、在./configure的--host的选项可以为arm-linux或arm-none-linux-gnueabi(编译工具cross-4.3.2,也是本次用的编译工具,在安装目录下的/bin文件夹里可以用ls -l看到编译工具除了arm-linux-gcc和arm-none-linux-gnueabi-gcc,arm-linux-g++和arm-none-linux-gnueabi-g++不同外,其余的都相同,都是连接),他们两个是不同的,前者貌似采用eabi,后者采用oabi(新手一个,猜测的).这关系到使用这些库的程序在板上的无法运行(出现得最多的是在板运行程序时会出现:illegal instruction),如果内核打开对EABI的支持,那么最好使用EABI进行编译(我的板上linux内核版本是2.6.29,已经打开了对EABI的支持,且qtopia2.20的文件系统也支持EABI),所以采用arm-linux进行编译。
具体可以参考:
arm Linux 2.6高版本中的系统调用方式
GNU arm 汇编求助
2、如果采用一种编译器进行编译,那么被依赖的那个库也一样要用同种编译器进行编译。
二、设置环境变量(本人用的是ubuntu9.04)
export SOURCE_PATH=/home/evix/src
export PREFIX=/opt/arm
export LDFLAGS=-L$PREFIX/lib
export CFLAGS="-g -I$PREFIX/include"
export PKG_CONFIG_PATH=${PREFIX}/lib/pkgconfig
三、编译库文件(#在最前前面的表示注释)
1.交叉编译tslib, 依赖的库: 无
=========开始交叉编译tslib=========
安装编译过程需用到的程序
apt-get install autoconf(或autoconf2.13)
apt-get install automake
apt-get install libtool
cd ${BUILDDIR}
tar xzvf ${SOURCE_PATH}/tslib-1.4.tar.gz
cd tslib
source autogen.sh
./configure --host=arm-linux --prefix=$PREFIX ac_cv_func_malloc_0_nonnull=yes
make
make install
2.交叉编译glib, 依赖的库: 无
=========开始交叉编译glib=========
cd ${BUILDDIR}
tar xzvf ${SOURCE_PATH}/glib-2.22.2.tar.gz
cd glib-2.22.2
echo "glib_cv_stack_grows=no" > arm-linux.cache
echo "glib_cv_has__inline=yes" >> arm-linux.cache
echo "glib_cv_working_bcopy=no" >> arm-linux.cache
echo "glib_cv_uscore=no" >> arm-linux.cache
echo "ac_cv_func_posix_getpwuid_r=yes" >> arm-linux.cache
echo "ac_cv_func_posix_getgrgid_r=yes" >> arm-linux.cache
./config
相关文档:
最近装过的Vista装错了,是个MSDN版,更新过后提示我要激活。没辙,只能重装换回原来的OEM
Ultimate版。这个重装之后的后果我是考虑过的,就是Grub的丢失。可我不想就这么为此重新装一遍Linux。要知道我可是yum了一天才从
Fedora7 yum到Fedora8的,尝试一下修复Grub吧,几条简单的命令就搞定了。
1、放入Linu ......
from: http://www.linuxeden.com/html/develop/20090702/66531.html
bash判断进程存在的3种方法
1、ps -p
ps -p 根据给定的pid参数判断是否有这个进程。
如果有这个进程正常退出,退出值0;
如果没有这个进程异常退出,退出值1。
apple@ubuntu:~$ ps -p 2442
PID TTY ......
也许只是我一个人比较笨,每次碰到bug,虽然有人给出补丁(patch),但是却不知道怎么使用。Manual Page ( man patch
)也只给出 patch -p(num)
<patchfile这样的用法,具体也不知道怎样确定num,如果你也有这样的疑惑,请继续阅读:
建立patch文件:
diff -Naur olddir newdir > new-patch
- or -
diff -Naur ol ......
[root@proxyo ~]#
而我要将中间的proxyo改成search
1. vi /etc/hosts
[root@proxyo ~]# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 ......
http://blog.csdn.net/youta_chen/archive/2007/08/29/1763215.aspx
今年上半年我对市场常见的vimicro 摄像头移植了Linux下的驱动至在研的一款嵌入式开发板,开发环境为:
OS:Linux2.6.9
Compile:cross 3.3.2
CPU:Intel PXA270
Camera Typ ......