如何将 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
当我通过 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