Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Including a #define in all .c source files at compile time

Tags:

c

gcc

I need to include a #define at the top of around 300 .c files. I would prefer not to change the code as it is open source code but if I have to I will just write a script to modify all the files. Is there a way using gcc to add a #define or header file include to the top of every source file during compilation? The #define is this:

#define malloc MYmalloc
like image 534
Will Brode Avatar asked Oct 29 '12 18:10

Will Brode


2 Answers

You can pass -Dmalloc=MYmalloc to the gcc options.

For more information about the -D option:

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

Note that if you want to modify the behavior of malloc function for debugging purposes, you may also be interested in glibc malloc hooks:

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

like image 89
ouah Avatar answered Dec 03 '22 06:12

ouah


gcc option -D:

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

-D name=definition
    ....

so, in your case, gcc ... -Dmalloc=MYmalloc

like image 37
joe Avatar answered Dec 03 '22 05:12

joe