zyp000 发表于 2012-4-13 13:22:48

请教一个很奇怪的链接错误。

本帖最后由 zyp000 于 2012-4-13 15:14 编辑


明明生成了3个对应的.o文件,可是链接器却提示找不到其中的2个。
交叉编译工具是TQ2440的光盘里带的。
Makefile:
objs := head.o init.o leds.o

mmu.bin : $(objs)
        arm-linux-ld -Tmmu.lds -o mmu_elf $^
        arm-linux-objcopy -O binary -S mmu_elf $@
        arm-linux-objdump -D -m arm mmu_elf > mmu.dis
       
%.o:%.c
        arm-linux-gcc -Wall -O2 -c -o $@ $<

%.o:%.S
        arm-linux-gcc -Wall -O2 -c -o $@ $<

clean:
        rm -f mmu.bin mmu_elf mmu.dis *.o
mmu.lds:
SECTIONS
{
        first        0x00000000:{head.o,init.o}
        secoud        0xB0004000:AT(2048){leds.o}
}

tyblly 发表于 2012-4-13 23:25:31

chmod 777 *
可以解决问题

zyp000 发表于 2012-4-14 13:03:17

本帖最后由 zyp000 于 2012-4-14 13:07 编辑

好像不是权限问题,我用root用户登录以后,再make还是一样的错误。
root@ubuntu:/program/mmu1# ls -l
total 24
-rwxrwxrwx 1 root root901 2012-04-13 21:34 head.S
-rwxrwxrwx 1 root root 6414 2012-04-13 21:34 init.c
-rwxrwxrwx 1 root root987 2012-04-13 21:34 leds.c
-rwxrwxrwx 1 root root316 2012-04-13 21:34 Makefile
-rwxrwxrwx 1 root root   91 2012-04-13 21:34 mmu.lds
root@ubuntu:/program/mmu1# make
arm-linux-gcc -Wall -O2 -c -o head.o head.S
arm-linux-gcc -Wall -O2 -c -o init.o init.c
arm-linux-gcc -Wall -O2 -c -o leds.o leds.c
arm-linux-ld -Tmmu.lds -o mmu_elf head.o init.o leds.o
arm-linux-ld: cannot find head.o,init.o
make: *** Error 1
root@ubuntu:/program/mmu1# ls -l
total 36
-rw-r--r-- 1 root root912 2012-04-13 22:06 head.o
-rwxrwxrwx 1 root root901 2012-04-13 21:34 head.S
-rwxrwxrwx 1 root root 6414 2012-04-13 21:34 init.c
-rw-r--r-- 1 root root 1284 2012-04-13 22:06 init.o
-rwxrwxrwx 1 root root987 2012-04-13 21:34 leds.c
-rw-r--r-- 1 root root704 2012-04-13 22:06 leds.o
-rwxrwxrwx 1 root root316 2012-04-13 21:34 Makefile
-rwxrwxrwx 1 root root   91 2012-04-13 21:34 mmu.lds
把.o文件也改成-rwxrwxrwx属性,再make还是同样的错误。

tyblly 发表于 2012-4-14 14:01:15

不要用root来make
用普通用户来make
在普通用户下 chmod

zyp000 发表于 2012-4-14 21:31:00

tyblly 发表于 2012-4-14 14:01 static/image/common/back.gif
不要用root来make
用普通用户来make
在普通用户下 chmod

朋友,刚才按照你的方法又试了一下,还是不行哦。
我的交叉工具链是TQ2440开发板光盘里提供的。
解压出来,设置好环境变量就可以用了吧?
是不是还需要自己设置些什么呢?
页: [1]
查看完整版本: 请教一个很奇怪的链接错误。