Atmega, avr-gcc,汇编包括文件从另一个目录



我无法说服windows上的avr-gcc从另一个目录中包含*.h文件:

>avr-gcc -Wa,-gdwarf2 -x assembler-with-cpp -c -mmcu=atmega256rfr2 halW1.S
C:UsersmeAppDataLocalTempccjzoYpN.s: Assembler messages:
C:UsersmeAppDataLocalTempccjzoYpN.s:6: Error: can't open halGccD.h for reading: No such file or directory

所需文件在..的上一级/包括文件夹(这是Atmel自己提供的BitCloud堆栈)

我尝试像Atmel Studio那样传递include文件夹:

>avr-gcc -Wa,-gdwarf2 -x assembler-with-cpp -c -mmcu=atmega256rfr2 halW1.S -I "..include"

但是avr-gcc汇编器似乎忽略了-I选项。我尝试了相对的,绝对的,甚至把全局路径。

如果我复制所需的*.h到*.h所在的文件夹

怎么了?

好的,我找错了。如果有人需要,-I不是单独为汇编文件工作的。当使用avr-gcc作为汇编器时,显式汇编器(-Wa)或链接器(-Wl)指令必须先于其他指令。如:

-Wa,-I"....path_to_h"

还要注意反斜杠(不是斜杠)…老的Windows问题。似乎avr-gcc应该正确解析,但不是。

相关内容

最新更新