嵌入式移植步骤:
1.下载压缩包
2.修改编译环境的环境变量
3.解压压缩包
4.配置
5.编译
6.安装(以上六步都在宿主机上完成)
7.将宿主机上交叉编译好的目标文件放置到目标机相应的文件下(该步在目标机上完成)
一.修改环境变量:
在终端输入以下命令:
Export CC=arm-linux-gcc、Export AR=arm-linux-ar、Export LD=arm-linux-ld、
Export NM=arm-linux-nm、Export STRIP=arm-linux-strip、
Export RANLIB=arm-linux-ranlib。
1.arm-linux-as:编译ARM汇编程序。
2.arm-linux-ar:把多个.o文件合并成一个.o文件或静态库文件(.a文件)。
3.arm-linux-ranlib:为库文件建立索引,相当于arm-linx-ar -s。
4.arm-linux-ld:连接器(Linker),把多个.o文件或库文件连接成一个可执行文件。
5.arm-linux-objcopy:转换可执行文件的格式。
6.arm-linux-strip:去掉elf可执行文件的信息。
7.arm-linux-gcc:编译.c或.s头的C文件或汇编程序。
8.arm-linux-nm:列出目标文件的符号清单。
二.解压源码包
tar -xvzf appweb-3.3.2-0-src.tgz到/home/appweb/ 解压后的文件appweb-3.3.2
三.配置
cd /home/appweb/ appweb-3.3.2
./configure --host=arm-linux --build=i686-pc-linux --port=80 --type=RELEASE --disable-log
--enable-multi-thread --disable-samples --disable-test --disable-access-log --with-cgi=builtin --with-esp=builtin --with-upload=builtin --webDir=/sdcard/www/data/
以上配置信息,具体视需求而定:
(1)如果只需要静态文件则可加入--disable-shared --enable-static,编译后生成的服务程序较大,只生成有静态库,没有模块。
(2)也可加入选项--prefix=……与 --webDir=……,用于指定make install时目标文件与默认网站的存放位置,prefix默认值为/usr/lib/,webDir默认值为/var/www/appweb-default。
四.编译
Configure成功后直接终端输入make,会在源文件夹appweb-3.3.2中的bin、lib、modules中生成arm-unknow-linux文件夹,这些arm-unknow-linux中内容为所需求。
五.安装
root权限执行make install,会生成/etc/appweb配置文件夹、/etc/init.d/appweb脚本文件,具cd体文件可参考/usr/lib/appweb/fileList.txt
到此在宿主机上交叉编译嵌入式应用程序的部分全部完成。
六.拷贝目标文件到目标机上
1)移植配置文件及脚本(我提前将目标文件都放在appweb文件下,并将他拷贝到sd中)
进入嵌入式文件系统中,root权限执行
cp /sdcard/appweb /appweb /etc/
cp /sdcard/appweb /init.d/appweb /etc/ init.d/
打开/etc/appweb中的配置文件appweb.conf,找到并修改
Listen 80
DocumentRoot "/sdcard/www
/data"
DirectoryIndex index.asp
LoadModulePath "/usr/lib/appweb/modules"
以上信息与编译时的配置信息相关,基本不用修改,DirectoryIndex为默认起始页。
打开脚本/etc/init.d/appweb,找到并修改
APPWEB_BIN=/usr/lib/appweb/bin
2)移植服务程序及库
在/usr/lib/下创建appweb文件夹及其子文件夹bin、lib、modules。
mkdir /usr/lib/appweb
mkdir /usr/lib/appweb/lib
mkdir /usr/lib/appweb/bin
mkdir /usr/lib/appweb/modules
到sdcard中将appweb/bin/arm-unkonw-linux中的内容复制到/usr/lib/appweb/bin/中
将appweb/lib/arm-unkonw-linux中的内容复制到/usr/lib/appweb/lib/中
将appweb/modules/arm-unkonw-linux中的内容复制到/usr/lib/appweb/modules/中
cp -rf /sdcard/appweb/bin/arm-unkonw-linux/* /usr/lib/appweb/bin/
cp -rf /sdcard/appweb/lib/arm-unkonw-linux/* /usr/lib/appweb/lib/
cp -rf /sdcard/appweb/modules/arm-unkonw-linux/* /usr/lib/appweb/modules/
在/usr/ sbin/中建立链接,指向/usr/lib/appweb/bin/中的可执行文件
执行ln -s /usr/lib/appweb/bin/ajs ajs
ln -s /usr/lib/appweb/bin/ajsc ajsc
ln -s /usr/lib/appweb/bin/angel angel
ln -s /usr/lib/appweb/bin/appweb appweb
ln -s /usr/lib/appweb/bin/cgiProgram
cgiProgram
修改嵌入式系统开机启动文件,加入/etc/rc.d/appweb start
开机重启。