我需要#define
在大约 300 个 .c 文件的顶部包含一个。我不希望更改代码,因为它是开源代码,但如果必须,我将只编写一个脚本来修改所有文件。有没有办法在编译期间使用 gcc 在#define
每个源文件的顶部添加头文件或头文件?是这样的#define
:
#define malloc MYmalloc
您可以传递-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
gcc 选项-D
:
-D name
Predefine name as a macro, with definition 1.
-D name=definition
....
所以,在你的情况下,gcc ... -Dmalloc=MYmalloc
如果您努力将malloc()
调用重定向到自定义函数,我宁愿建议通过在运行时预加载您的实现来提供您的自定义代码。有关详细信息,请参阅此问题。