分类: LINUX
2007-04-30 14:40:03
嵌入式Linux 在windows中编译vivi
在cygwin中编译vivi
FriendlyARM
在Windows中编译vivi,您需要安装cygwin和相应的arm-linux编译工具链。
要在Windows中安装cygwin,请参考“cygwin完全安装指南 ”
安装arm-linux编译工具链,请参考“如何在Windwos上建立arm-linux开发环境 ”
--------------------------------------------------------------------------------
1. 可能用到的文件列表(可下载)
2. 设置库的路径
3. 配置vivi
4. 编译vivi
5. 常见编译错误
注:请确保/friendly-arm目录下已经解压内核源代码,即存在/friendly-arm/kernel目录。
--------------------------------------------------------------------------------
1. 可能用到的文件列表(可下载)
vivi_cygwin.tgz - cygwin下vivi的源代码
vivi_preconfig.tgz - vivi预配置的预配置文件
--------------------------------------------------------------------------------
2. 设置库的路径
要在cygwin中正确编译vivi,需要设置好编译器的路径,如下图所示:
--------------------------------------------------------------------------------
3. 配置vivi
(1)在vivi目录下解压预配置文件:
$tar xvzf vivi_preconfig.tgz
运行make menuconfig可以开始配置vivi,如图所示为vivi配置主菜单,选择“Load an Alternate Configuration File”载入预配置。
vivi配置主菜单
(2) 输入预配置文件的名字config.freindlyarm
在对话框中输入config.friendlyarm,然后保存退出。
输入config.friendlyarm
--------------------------------------------------------------------------------
4. 编译vivi
运行make开始编译vivi,最后在当前目录下生成vivi
--------------------------------------------------------------------------------
5. 常见的错误
(1)链接错误
错误信息如下:
arm-linux-ld -r -o s3c2410.o nand_read.o mmu.o proc.o smdk.o
make[2]: Leaving directory `/friendly-arm/vivi/arch/s3c2410’
make[1]: Leaving directory `/friendly-arm/vivi/arch/s3c2410’
arm-linux-gcc -D__ASSEMBLY__ -I/friendly-arm/vivi/include -I/friendly-arm/kernel/include/ -mapcs-32 -mno-fpu -msoft-float -c -o arch/s3c2410/head.o arch/s3c2410/head.S
arm-linux-ld -v -Tarch/vivi.lds -Bstatic \
arch/s3c2410/head.o \
arch/s3c2410/s3c2410.o init/main.o init/version.o lib/lib.o \
drivers/serial/serial.o drivers/mtd/mtd.o \
lib/priv_data/priv_data.o \
-o vivi-elf -L/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3 -lgcc -lc
GNU ld version 2.15
arm-linux-ld: cannot find -lgcc
make: *** [vivi] Error 1
分析:这是因为您没有设置好libgcc库的路径,请参考前面第2步正确设置库的路径
(2)缺少头文件
错误信息如下:
make[2]: Entering directory `/friendly-arm/vivi/lib’
arm-linux-gcc -I/friendly-arm/vivi/include -I/friendly-arm/kernel/include/ -Wall -Wstrict-prototypes -O2 -fPIC -fomit-frame-pointer -mapcs-32 -mshort-load-bytes -msoft-float -c -o boot_kernel.o boot_kernel.c
boot_kernel.c: In function `setup_linux_param’:
boot_kernel.c:188: sizeof applied to an incomplete type
boot_kernel.c:188: sizeof applied to an incomplete type
boot_kernel.c:191: dereferencing pointer to incomplete type
boot_kernel.c:192: dereferencing pointer to incomplete type
boot_kernel.c:215: dereferencing pointer to incomplete type
make[2]: *** [boot_kernel.o] Error 1
make[2]: Leaving directory `/friendly-arm/vivi/lib’
make[1]: *** [first_rule] Error 2
make[1]: Leaving directory `/friendly-arm/vivi/lib’
make: *** [_dir_lib] Error 2
分析:这是因为您没有在/friendly-arm目录下解压内核源代码,vivi编译的时候需要里面的头文件,请先在/friendly-arm目录下解压内核