解决方案如下图,在独有的编译单元内使用 #define,在这个文件内使用 #ifdef (这种方式是错误的,#define 一般只会在当前文件起作用)

另外一个方案是,在这个 ”会被很多个编译单元链接“ 的文件里定义全局变量,随后把对这个全局变量的引用放到那些 ”只会被一个编译单元链接“ 的文件里。
接着在引用这个全局变量的地方初始化这个全局变量,在定义这个全局变量的地方对这个全局变量的值做判断来确定是否执行代码
图文并茂的话,那就是如下图:
首先在 afl-forkserver.c,这一个被许多编译单元链接的文件里,定义一个全局新的全局变量,然后在这个文件里根本不修改它

接着在 afl-fuzz.c,一个只会被一个编译单元链接的文件里,声明这个全局变量

接着在 main 函数开头就去修改这个全局变量,保证 afl-fuzz.c -> afl-forkserver.c 这个执行流的时候,msgid != 0

接着在 afl-forkserver.c 的新代码处,增加一个判断条件,判断 msgid != 0.
由于只有 afl-fuzz.c -> afl-forkserver.c 这个流会让 msgid != 0,所以只有这个流里会执行分支里的代码
