以BusyBox-1.10.1为例:静态编译省去了找共享库的麻烦,但是运行自己写的程序极为不方便,也必须静态编译,最好还是编译成动态的.与静态编译相比,动态编译需注意以下几点:
1. 在BusyBox-1.10.1的配置中将如下选项勾上:
Busybox settings->
Build Options->
√Build shared bosybox->
将如下两项去掉勾(不去掉编译通不过,具体愿因还未研究):
Produce a binary for each applet,linked against libbusybox.
Produce a additional busybox binary linked against libbusybox.
2. 在建立文件系统时将交叉编译器的lib库全部复制到文件系统的ib库中,一般可以运行起来,如果还差其它动态库,则找到后放在文件系统的lib库下即可.如我的4.0版本的交叉编译器lib库为../arm-9tdmi-linux-gnu/arm-9tdmi-linux-gnu/lib下面,复制到文件系统的lib目录中,并在etc目录下建立一个ld.so.conf配置文件,将动态库的路径加入其中,如usr/local/lib,保存.然事在PC上对文件系统根目录运行配置命令:如根目录为netfs,则如下:
ldconfig –r netfs
之后在etc下生成一个ld.so.cache的文件,这样启动后即可加载动态编译的文件系统了,自己的编译的程序也不用静态编译了.
阅读(601) | 评论(0) | 转发(0) |