10

#define約300個の.cファイルの先頭にを含める必要があります。オープンソースコードであるため、コードを変更したくないのですが、変更する必要がある場合は、すべてのファイルを変更するスクリプトを作成します。#definegccを使用して、コンパイル中にすべてのソースファイルの先頭にヘッダーファイルインクルードを追加する方法はありますか?これ#defineはこれです:

#define malloc MYmalloc
4

3 に答える 3

23

オプションに渡すことができ-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

于 2012-10-29T18:49:55.387 に答える
6

gccオプション-D

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

-D name=definition
    ....

だから、あなたの場合、gcc ... -Dmalloc=MYmalloc

于 2012-10-29T18:51:54.157 に答える
0

呼び出しをカスタム関数にリダイレクトしようとする場合malloc()は、実行時に実装をプリロードしてカスタムコードを提供することをお勧めします。詳細については、この質問を参照してください。

于 2012-10-29T18:54:22.067 に答える