请教一个很奇怪的链接错误。
本帖最后由 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}
} chmod 777 *
可以解决问题 本帖最后由 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还是同样的错误。 不要用root来make
用普通用户来make
在普通用户下 chmod tyblly 发表于 2012-4-14 14:01 static/image/common/back.gif
不要用root来make
用普通用户来make
在普通用户下 chmod
朋友,刚才按照你的方法又试了一下,还是不行哦。
我的交叉工具链是TQ2440开发板光盘里提供的。
解压出来,设置好环境变量就可以用了吧?
是不是还需要自己设置些什么呢?
页:
[1]