首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CYGPATH不能从makefile调用

CYGPATH不能从makefile调用
EN

Stack Overflow用户
提问于 2015-09-29 02:30:10
回答 1查看 312关注 0票数 0

我正在为嵌入式C代码库开发一个自动构建和持续集成环境。我使用Keil的Real View compiler (windows可执行文件)作为交叉编译器,并使用Cygwin构建整个持续集成环境。

Keil的文档指出,如果使用Cygwin,则必须为编译器(即windows可执行文件)适当地设置CYGPATH环境变量,以便理解像包含文件这样的内容的Cygwin路径。(http://www.keil.com/support/man/docs/ARMINTRO/armintro_pge1362395716635.htm)

makefile如下所示:

代码语言:javascript
复制
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中的文件)

此外,如果它有帮助,如果我给出了包含文件的相对路径,我运行交叉编译也没有问题。

EN

回答 1

Stack Overflow用户

发布于 2015-09-29 03:21:28

您必须在Makefile中声明var,该文件将指向您的include目录。例如,

INCLUDE_DIR = c:/path/to/include/,因此您的makefile目标将是:

$armcc.exe -I$(INCLUDE_DIR) foo.c

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32829529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档