Inclure un #define dans tous les fichiers source .c au moment de la compilation

J’ai besoin d’inclure un #define au sumt d’environ 300 fichiers .c. Je préférerais ne pas changer le code car il s’agit d’un code source ouvert, mais si je dois le faire, j’écrirai simplement un script pour modifier tous les fichiers. Existe-t-il un moyen d’utiliser gcc pour append une #define ou un fichier d’en-tête à inclure en haut de chaque fichier source lors de la compilation? Le #define est ceci:

 #define malloc MYmalloc 

Vous pouvez passer -Dmalloc=MYmalloc aux options gcc .

Pour plus d’informations sur l’option -D :

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

Notez que si vous souhaitez modifier le comportement de la fonction malloc à des fins de débogage, vous pouvez également être intéressé par les crochets glibc malloc :

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

option gcc -D :

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

donc, dans votre cas, gcc ... -Dmalloc=MYmalloc

Si vous vous efforcez de redirect les appels de malloc() vers une fonction personnalisée, je vous conseillerais plutôt de fournir votre code personnalisé via le préchargement de votre implémentation lors de l’exécution. Voir cette question pour plus de détails.