将变量从C文件传递给makefile

时间:2015-09-07 09:02:45

标签: c makefile

在我的makefile中,我将链接器标志的参数添加为变量BOOTLOAD

LDFLAGS += -Wl,--section-start=.bootloader=$(BOOTLOAD) 

如果我在makefile中写BOOTLOAD = 0x3800,一切正常。

但是我想从C代码传递这个变量,所以我试着像#define BOOTLOAD 0x3800那样定义它。但链接器找不到它。

我应该如何从C档传递BOOTLOAD

2 个答案:

答案 0 :(得分:6)

而不是"传递"来自C源文件的宏(这可能但不容易),您可以在使用-D选项进行编译时要求预处理器定义宏:

gcc -DBOOTLOAD=$(BOOTLOAD) -c source_file.c

我建议您查看GCC preprocessor command line option reference以获取有关-D选项的更多信息。

可以将特定的源文件搜索到宏定义,然后将makefile变量设置为提取的值,但是反过来更容易实现,如图所示上方。

答案 1 :(得分:0)

似乎你必须从makefile中的源代码grep BOOTLOAD,如下所示:

ggtern(data = df,aes(x = c,y = a, z = b)) + 
  geom_interpolate_tern(aes(value=d,colour=..level..),bins=50) +
  geom_point(aes(color=d),size=10) + 
  geom_text(aes(label=round(d,0)),size=3) + 
  theme_bw() + 
  theme(legend.position=c(0,1),
        legend.justification=c(0,1)) + 
  scale_colour_gradient(low='green',high='red') + 
  labs( title = "Ternary filled contour plot", colour = "Value, V")