QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2509|回复: 2

我也问个有关uClinux编译的问题。

[复制链接]
发表于 2007-3-8 21:16:38 | 显示全部楼层 |阅读模式
我刚接触linux不久,对编译器和make的规则都不了解。前几天在某大虾的博客http://blog.iyi.cn/hily/archives/2006/09/uclinuxsamsung_s3c44b0x.html上看到一篇移植的经验,就照猫画虎的模仿,所有的东西都是照搬的,结果也都一样,只是到了下面的地方出了错。
[root@localhost uClinux-dist]# make user_only
[ ! -d "user" ] || make ARCH=arm CROSS_COMPILE=arm-elf- -C user
make[1]: Entering directory `/home/work/uClinux-dist/user'
for i in games ramimage sash /home/work/uClinux-dist/vendors/Samsung/44B0X/. /home/work/uClinux-dist/prop; do \
                if [ -d $i ]; then \
                        touch $i/.sgbuilt_user; \
                        make -C $i || exit $? ; \
                fi; \
        done
make[2]: Entering directory `/home/work/uClinux-dist/user/games'
for i in  dummy ; do \
                [ $i = dummy ] || make -C $i || exit  ; \
        done
make[2]: Leaving directory `/home/work/uClinux-dist/user/games'
make[2]: Entering directory `/home/work/uClinux-dist/user/ramimage'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/work/uClinux-dist/user/ramimage'
make[2]: Entering directory `/home/work/uClinux-dist/user/sash'
ucfront-gcc arm-elf-gcc  -O2 -g -fomit-frame-pointer -fno-common -fno-builtin -Wall   -DEMBED -Dlinux -D__linux__ -Dunix -D__uClinux__   -c -o sash.o sash.c
make[2]: *** [sash.o] 段错误
make[2]: Leaving directory `/home/work/uClinux-dist/user/sash'
make[1]: *** [all] 错误 2
make[1]: Leaving directory `/home/work/uClinux-dist/user'
make: *** [user_only] 错误 2
我看了/user/sash路径下的makefile,内容如下:
ifdef CONFIG_USER_SASH_SH
SH = sh
SHOBJS = sash.o cmds.o cmd_uclinux.o ls.o hexdump.o df.o free.o \
        hostname.o date.o
endif

ifdef CONFIG_USER_SASH_SHUTDOWN
SHUTDOWN = shutdown
SHUTDOWNOBJS = shutdown.o
endif

ifdef CONFIG_USER_SASH_REBOOT
REBOOT = reboot
REBOOTOBJS = reboot.o
endif

ifdef CONFIG_USER_SASH_PS
SHOBJS += ps.o
CFLAGS += -DCONFIG_USER_SASH_PS
endif

LIBSASH = libsash/libsash.a

ifdef CONFIG_USER_SASH_HISTORY
CFLAGS += -DCOMMAND_HISTORY
endif

all: $(SH) $(SHUTDOWN) $(REBOOT)

$(SH): $(SHOBJS) $(LIBSASH)
        $(CC) $(LDFLAGS) -o $@ $(SHOBJS) $(LIBSASH) $(LDLIBS$(LDLIBS_$@))

$(SHUTDOWN): $(SHUTDOWNOBJS) $(LIBSASH)
        $(CC) $(LDFLAGS) -o $@ $(SHUTDOWNOBJS) $(LIBSASH) $(LDLIBS)

$(REBOOT): $(REBOOTOBJS) $(LIBSASH)
        $(CC) $(LDFLAGS) -o $@ $(REBOOTOBJS) $(LIBSASH) $(LDLIBS$(LDLIBS_$@))

romfs:
        $(ROMFSINST) -e CONFIG_USER_SASH_SH       /bin/sh
        $(ROMFSINST) -e CONFIG_USER_SASH_REBOOT /bin/reboot
        $(ROMFSINST) -e CONFIG_USER_SASH_REBOOT_SNAPGEAR reboot-snapgear.sh /bin/reboot
        $(ROMFSINST) -e CONFIG_USER_SASH_SHUTDOWN /bin/shutdown

dummy_target:

$(LIBSASH): dummy_target
        $(MAKE) -C libsash

clean:
        -rm -f $(SH) $(SHUTDOWN) $(REBOOT) *.elf *.gdb *.o
        $(MAKE) -C libsash clean
不知该怎么做了,请各位大哥指点迷津。我在此先谢过了 。
我的系统是fc6。
发表于 2007-3-20 21:14:52 | 显示全部楼层
可以在 make menuconfig 的时候,把 user 下面的 sash 应用不选中。
回复

使用道具 举报

 楼主| 发表于 2007-3-25 19:22:09 | 显示全部楼层
我还以为没人回复了,真是感动阿,实际上我只有在不编译shell时才能通过,只要用任一个都有某个文件段错误。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-4-19 12:48 , Processed in 0.050127 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表