99lingbo 发表于 2008-06-18 16:28

armcc 问题

armcc -M选项生成自动依赖关系
可是有一部分是系统的头文件
我想去掉系统依赖的部分
请问有什么参数

gcc是可以通过-MM代替-M实现

99lingbo 发表于 2008-06-18 17:03

请教中。。。。。。

cjaizss 发表于 2008-06-18 17:39

查查帮助吧,没用过armcc

wangyuu235 发表于 2008-06-22 09:39

...

armcc 是arm公司自己开发的编译器,但就个人认为,这个和GNU的GCC有很多相似性:它们的命令相似。但有点不同,在GCC编译的指令代码中,每个函数的入口压栈的时候使PC寄存器压站,armcc没有压这个寄存器。
其实就armcc和gcc建立依赖关系来说都是一样的,为什么你不想要依赖系统的文件?

99lingbo 发表于 2008-06-23 09:35

例如生成的一个.d文件如下:
z:/services/hdlc/objs/hdlc.o:        z:\services\hdlc\source\hdlc.c
z:/services/hdlc/objs/hdlc.o:        z:\services\common\include\srv_cfg.h
z:/services/hdlc/objs/hdlc.o:        z:\services\ose\include\osekernel.h
z:/services/hdlc/objs/hdlc.o:        z:\services\ose\include\osetskcfg.h
z:/services/hdlc/objs/hdlc.o:        z:\services\ose\include\oseproccfg.h
z:/services/hdlc/objs/hdlc.o:        z:\services\ose\include\oseif.h
z:/services/hdlc/objs/hdlc.o:        z:\services\common\include\lnc_type
z:/services/hdlc/objs/hdlc.o:        D:\Program Files\ARM\ADSv1_2\Include\string.h

最后一行就有错误,说不认识 “D:\Program”

wangyuu235 发表于 2008-06-23 17:35

你用的armcc是在cygwin下用的吧?如果是cygwin,这行应该是“D:\Program\ Files\ARM\ADSv1_2\Include\string.h”
注意,UNIX格式的系统在命令行下对于文件名的操作不同windows,凡是保留字符都需要添加转义字符 '\' .你手动把这行改了试试

wangyuu235 发表于 2008-06-23 17:44

其实gcc -M只是用来生成依赖关系的工具,然后在根据依赖关系查找*.o的文件修改日期是否在依赖的文件修改日期之前,如果条件成立,就重新编译生成*.o文件。这个方法对于编译是很节约时间的。
其实没有依赖关系也没有问题,只是当你修改了源码后,需要clean掉所有的obj文件、你自己编译好的库文件和可执行文件。
为什么不用linux?cygwin是windows上的虚拟环境,性能浪费

99lingbo 发表于 2008-06-24 13:21

不是cygwin,我是想在windows下的cmd中执行make命令,

[ 本帖最后由 99lingbo 于 2008-6-24 13:30 编辑 ]

wangyuu235 发表于 2008-06-24 17:29

......
有创意

99lingbo 发表于 2008-06-26 13:34

有人知道吗?
什么参数可以不生成带有系统的依赖文件,继续请教中。。。。。。
我查了一下armcc文档,只有-M与-MD参数,可是都不行
页: [1] 2
查看完整版本: armcc 问题