1
我有一个复杂的Makefile结构的大源目录(包括地段等)GCC -E -dM给我的预处理器定义,但我希望它编译
我想抓住预处理定义了GCC将在您运行时提供
gcc -E -dM。但是,我也想要构建源代码。当我检查make/build日志时,我希望看到make运行的所有命令,以及来自源文件中的所有文件的#define,这些文件被传递给编译器和/或重写。
我不知道如何去做这件事。
对于如
如果有只用这一条线foo.c文件里
#define PI 3.14
运行的gcc -E -dM的foo.c将打印出所有的preprocessory定义到stdout,以及foo.c中的定义。
但它不编译。我如何将命令组合起来以使这两件事情都发生?
谢谢保罗!我会给这个镜头。 .dump文件在哪里创建?我会从我跑过的地方(顶层)发现它吗? – Rohan 2011-06-17 16:31:36
@Rohan:应该和.c文件在同一个目录 – 2011-06-17 16:33:02
谢谢保罗。这对我用简单的foo.c文件创建的一个小例子非常有效。我试图解决的问题稍微复杂一些。我有一个带有.c文件的文件夹,但编译成.o的文件正在不同的make文件中处理。我只是尝试了你给我的解决方案的第一部分(用-dM开关等),但规则似乎没有触发,因为现在在这种情况下,我不关心编译本身,因为它的存在已搞定。 我应该如何修改上述规则,使其在所有.c文件的感兴趣文件夹中运行,并为我提供这些符号? – Rohan 2011-06-22 20:51:34