我试图理解一个makefile,其中一个Fortran代码与cpp一起用于以下方式进行预处理,
cpp -P -traditional -DMPI -DLINUX -DX86_64 -DGFORTRAN -D'HEADER="testfile.h"' -D'ROOT_DIR="/home/Desktop"'...-D'FILE_DIR="/home/Desktop/MYFILES"' -I/usr/local/include file.F
我理解include目录的用法,但我无法理解此处列出的-D选项(命名为CPPFLAGS)的用途。我看到如果我删除任何-D选项,我的输出被修改(我只得到程序的开始和结束,中间没有文字)。
编辑:我有一个ifdef选项列表,我的makefile使用不同的子目录和-D选项。在这些目录中查找的是什么,定义了该选项的文件?
答案 0 :(得分:0)
如果我理解正确,你只想弄清楚-D的含义。 gcc -D定义了预处理器使用的宏。 语法如下:
$ gcc -Dname [options] [source files] [-o output file]
$ gcc -Dname=definition [options] [source files] [-o output file]
如果删除任何-D,则表示未定义此宏。所以你的输出可能会改变。