在编译时在所有.c源文件中包含#define

Wil*_*ode 8 c gcc

我需要#define在大约300个.c文件的顶部包含一个.我宁愿不更改代码,因为它是开源代码,但如果我必须,我将只编写一个脚本来修改所有文件.有没有办法#define在编译期间使用gcc在每个源文件的顶部添加一个或头文件include?这#define是:

#define malloc MYmalloc
Run Code Online (Sandbox Code Playgroud)

oua*_*uah 20

您可以-Dmalloc=MYmalloc转到gcc选项.

有关该-D选项的更多信息:

http://gcc.gnu.org/onlinedocs/gcc/Preprocessor-Options.html

请注意,如果要修改malloc函数的行为以进行调试,您可能还对glibc malloc钩子感兴趣:

http://www.gnu.org/software/libc/manual/html_node/Hooks-for-Malloc.html


joe*_*joe 6

gcc 选项-D

-D name
    Predefine name as a macro, with definition 1.

-D name=definition
    ....
Run Code Online (Sandbox Code Playgroud)

所以,就你而言, gcc ... -Dmalloc=MYmalloc