gpt4 book ai didi

CYGPATH 不会从 makefile 中调用

转载 作者:行者123 更新时间:2023-11-30 17:10:32 24 4
gpt4 key购买 nike

我正在为嵌入式 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 ;

当我执行时 $cc -c -I/cygdrive/c/Keil_v5/MDK-Middleware -I/cygdrive/c/Keil_v5/ARM -o a.o a.c直接在Cygwin终端上,交叉编译成功。

然而,尽管将 PATH_TO_KEIL 定义为/cygdrive/c/Keil_v5 ,但在运行 makefile 编译器时,它会提示找不到包含文件。(即/cygdrive/c/Keil_v5/ARM 或 C:\Keil_v5 中存在的文件)

另外,如果有帮助的话,如果我给出包含文件的相对路径,那么运行交叉编译就没有问题。

最佳答案

您必须在 Makefile 中声明 var,它将指向您的包含目录。例如,

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

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

关于CYGPATH 不会从 makefile 中调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32829529/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com