我正在为嵌入式C代码库开发一个自动构建和持续集成环境。我使用Keil的Real View compiler (windows可执行文件)作为交叉编译器,并使用Cygwin构建整个持续集成环境。
Keil的文档指出,如果使用Cygwin,则必须为编译器(即windows可执行文件)适当地设置CYGPATH环境变量,以便理解像包含文件这样的内容的Cygwin路径。(http://www.keil.com/support/man/docs/ARMINTRO/armintro_pge1362395716635.htm)
makefile如下所示:
INCLUDE_DIR=-I$(PATH_TO_KEIL)/MDK-Middleware \
-I$(PATH_TO_KEIL)/ARM
a.o : a.c
echo
echo Compiling $<....;
echo cc -c $(INCLUDE_DIR) -o a.o a.c ;
cc -c $(INCLUDE_DIR) -o a.o a.c ;当我在Cygwin终端上直接执行$cc -c -I/cygdrive/c/Keil_v5/MDK-Middleware -I/cygdrive/c/Keil_v5/ARM -o a.o a.c时,交叉编译成功进行。
但是,尽管将PATH_TO_KEIL定义为/cygdrive/c/Keil_v5,但在运行makefile编译器时,它会抱怨说它找不到包含文件。(i.e.the位于/cygdrive/c/Keil_v5/PATH_TO_KEIL或C:\Keil_v5中的文件)
此外,如果它有帮助,如果我给出了包含文件的相对路径,我运行交叉编译也没有问题。
发布于 2015-09-29 03:21:28
您必须在Makefile中声明var,该文件将指向您的include目录。例如,
INCLUDE_DIR = c:/path/to/include/,因此您的makefile目标将是:
$armcc.exe -I$(INCLUDE_DIR) foo.c
https://stackoverflow.com/questions/32829529
复制相似问题