如何将 makefile 中的编译命令行添加到源代码中

How to add the compiler command lines in the makefile to the source code

当我通过 makefile 在一个特定的源代码(c 代码)上执行几个不同的编译命令时。出于文档原因,是否可以将这些编译命令作为注释添加到源代码中?

您可以添加定义为包含编译器标志的字符串的预处理器宏,然后在对常量字符串指针的赋值中使用该宏。

Makefile 中的类似内容

$(CC) $(CFLAGS) -DCFLAGS="$(CFLAGS)" ...

并在一个源文件中做例如

const char cflags[] = CFLAGS;

虽然没有通用的方法将其作为评论的一部分。

您可以在源文件的注释块中使用特殊标记,然后使用例如sed 在 POSIX 环境中(例如 Linux 或 OSX)。

像这样:

sed -i.bak -e 's@// CFLAGS: .*$@// CFLAGS: $(CFLAGS)@' some_source_file.c

也许我理解错了问题,但这似乎并不难:

foo.o: foo.cc
    @command="$(CXX) $(CPPFLAGS) -c $< -o $@"; echo $$command ;\
  sed -i .bak "1{x;s|^|//$$command|;G;}" $< ; \
  $$command