linux Makefile文件make时出现的问题

我先把代码写出来是自己改的但是make一直报错我的程序本身没有问题下面是报错原因:arm-linux-gcc-nostdinc-I/home/iot/smart210/I... 我先把代码写出来 是自己改的 但是make一直报错 我的程序本身没有问题
下面是报错原因:
arm-linux-gcc -nostdinc -I/home/iot/smart210/Inttest/include -Wall -O2 -fno-builtin -c -o /home/iot/smart210/Inttest/OBJS/start.o start.S
arm-linux-gcc -nostdinc -I/home/iot/smart210/Inttest/include -Wall -O2 -fno-builtin -c -o /main.o main.c
Assembler messages:
Fatal error: can't create /main.o: Permission denied
make: *** [main.o] 错误 1
我的意图是建立一个OBJS的文件夹 用于存放所有编译后的文件
Makefile具体实现如下:
CC = arm-linux-gcc
LD = arm-linux-ld
AR = arm-linux-ar
OBJCOPY = arm-linux-objcopy
OBJDUMP = arm-linux-objdump
OBJSDIR = $(shell pwd)/OBJS

INCLUDEDIR := $(shell pwd)/include
CFLAGS := -Wall -O2 -fno-builtin
CPPFLAGS := -nostdinc -I$(INCLUDEDIR)

export CC AR LD OBJCOPY OBJDUMP OBJSDIR INCLUDEDIR CFLAGS CPPFLAGS

objs := start.o main.o uart.o int.o clock.o lib/libc.a

int.bin: $(OBJSDIR)/$(objs)
$(LD) -Tint.lds $(OBJSDIR)/*.o -o $(OBJSDIR)/int.elf
$(OBJCOPY) -O binary $(OBJSDIR)/int.elf $(OBJSDIR)/$@
${OBJDUMP} -D int.elf > int.dis

.PHONY : lib/libc.a
lib/libc.a:
cd lib; make; cd ..

%.o:%.c
${CC} $(CPPFLAGS) $(CFLAGS) -c -o $(OBJJSDIR)/$@ $<

%.o:%.S
${CC} $(CPPFLAGS) $(CFLAGS) -c -o $(OBJSDIR)/$@ $<

$(OBJSDIR):
mkdir -p ./$@

clean:
make clean -C lib
-$(RM) $(OBJSDIR)/*.bin *.elf *.dis *.o
求大神指点 分数略少却已是倾囊了 聊表心意 万分感谢!
展开
 我来答
匿名用户
2015-12-13
展开全部
“Permission denied”意为“授权失败”,可能是目标文件夹不存在或只读,或目标文件已存在且只读,或目标位置错误
根据提示,你的main.o是在/创建的
更多追问追答
追问
那为什么start.o 成功写进去了 
ls -ahl 以后显示我的文件夹是可写的
追答
因为start.o是写入到了/home/iot/smart210/Inttest/OBJS/文件夹下,这个文件夹是可写的。
而/对普通用户默认是只读的
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式