c - 如何在makefile中扩展嵌套变量

标签 c batch-file makefile gnu-make simulink

我正在使用 simulink 生成 C 代码。为了编译代码,使用了生成 makefile。

在此 make 文件中,创建了以下变量“MAKECMD”。该变量用于制作 *.bat 文件(我还不知道这是如何完成的。)

这是 make 文件中的内容

SRCDIR = $(PROJECTROOT)\Implementation\Src
BLDDIR = $(PROJECTROOT)\Implementation\Bld
CFGDIR = $(PROJECTROOT)\Implementation\Cfg
BINDIR = $(BLDDIR)\bin

MAKECMD             = $(PROJECTROOT)\Tools\gmake\make.exe

当我查看生成的 *.bat 文件时,我发现 $(PROJECTROOT) 未展开。

set MEMORY_MODEL=BANKED
set PROJECTROOT=C:\DOCUMENT\Software\Matlab\Move\S12X_Target_R2009a
set CW_ROOT=C:\Programs\Freescale\CodeWarS12
$(PROJECTROOT)\Tools\gmake\make.exe S12X

我应该怎么做才能在 *.bat 文件中展开 $(PROJECTROOT) 最后一行将如下所示:

C:\DOCUMENT\Software\Matlab\Move\S12X_Target_R2009a\\Tools\gmake\make.exe S12X

最佳答案

我通过使用 wOxxOm 的 %PROJECTROOT% 建议解决了这个问题。
并在 mathworks _make_rtw_hook.m 脚本中添加环境变量的创建和设置:

setenv('PROJECTROOT',get_param(modelName,'projectroot'))

关于c - 如何在makefile中扩展嵌套变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33230243/

相关文章:

c - 如何理解 "typedef int (xxx)(int yyy);"?

c - 8051 微 Controller 的 7 段显示屏上的数字闪烁

windows - 批处理文件存储行变量并对它们求和

c++ - 如何从qmake中的包含路径中删除项目的根目录

makefile - 这个 makefile 架构有什么意义?

c - 十进制素数转二进制

windows - 使用 SFTP 将文件从 Windows 传输到 Linux

windows - cmd批处理中的自动完成路径

makefile - 简单检查现有文件时 Makefile 出错

c - 为什么我没有得到想要的输出?