`--wrap SYMBOL'
對SYMBOL符號使用包裝函數(shù). 任何未定義的對SYMBOL符號的引用會被解析成'_wrap_SYMBOL'. 而任何
未定義的對'_real_SYMBOL'的引用會被解析成SYMBOL.
這可以用來為系統(tǒng)函靈敏提供一個包裝. 包裝函靈敏應(yīng)當(dāng)被叫做'__wrap_SYMBOL'. 如果需要調(diào)用這個
函數(shù), 那就應(yīng)該調(diào)用'__real_SYMBOL'
這里是一個沒什么實(shí)用價值的例子:
void *
__wrap_malloc (int c)
{
printf ("malloc called with %ld\n", c);
return __real_malloc ?;
}
如果你使用'--wrap malloc'把這節(jié)代碼跟其他的代碼連接, 那所有的對'malloc'的調(diào)用都會調(diào)用
'__wrap_malloc'函數(shù). 而在'__wrap_malloc'中的'__real_malloc'會調(diào)用真正的'malloc'函數(shù).
你有可能也希望提供一個'__real_malloc'函數(shù), 這樣,不帶有'--wrap'的連接器也會成功連接.如果
你這樣做了, 你不能把'__real_malloc'的定義跟'__wrap_malloc'放到同一個文件中;如果放在一起
匯編器會在連接器之前把調(diào)用解析成真正的'malloc'.
`--enable-new-dtags'
`--disable-new-dtags'
連接器可以在ELF中創(chuàng)建一個新的動態(tài)標(biāo)簽. 但是舊的ELF系統(tǒng)可能不理解這個. 如果你指定了
'--enable-new-dtags',動態(tài)標(biāo)簽會按需要被創(chuàng)建. 如果你指定了'--disable-new-dtags',那不會有
新的動態(tài)標(biāo)簽被創(chuàng)建. 缺省地,新的動態(tài)標(biāo)簽不會被創(chuàng)建. 注意這些選項(xiàng)只在ELF系統(tǒng)中有效.
對SYMBOL符號使用包裝函數(shù). 任何未定義的對SYMBOL符號的引用會被解析成'_wrap_SYMBOL'. 而任何
未定義的對'_real_SYMBOL'的引用會被解析成SYMBOL.
這可以用來為系統(tǒng)函靈敏提供一個包裝. 包裝函靈敏應(yīng)當(dāng)被叫做'__wrap_SYMBOL'. 如果需要調(diào)用這個
函數(shù), 那就應(yīng)該調(diào)用'__real_SYMBOL'
這里是一個沒什么實(shí)用價值的例子:
void *
__wrap_malloc (int c)
{
printf ("malloc called with %ld\n", c);
return __real_malloc ?;
}
如果你使用'--wrap malloc'把這節(jié)代碼跟其他的代碼連接, 那所有的對'malloc'的調(diào)用都會調(diào)用
'__wrap_malloc'函數(shù). 而在'__wrap_malloc'中的'__real_malloc'會調(diào)用真正的'malloc'函數(shù).
你有可能也希望提供一個'__real_malloc'函數(shù), 這樣,不帶有'--wrap'的連接器也會成功連接.如果
你這樣做了, 你不能把'__real_malloc'的定義跟'__wrap_malloc'放到同一個文件中;如果放在一起
匯編器會在連接器之前把調(diào)用解析成真正的'malloc'.
`--enable-new-dtags'
`--disable-new-dtags'
連接器可以在ELF中創(chuàng)建一個新的動態(tài)標(biāo)簽. 但是舊的ELF系統(tǒng)可能不理解這個. 如果你指定了
'--enable-new-dtags',動態(tài)標(biāo)簽會按需要被創(chuàng)建. 如果你指定了'--disable-new-dtags',那不會有
新的動態(tài)標(biāo)簽被創(chuàng)建. 缺省地,新的動態(tài)標(biāo)簽不會被創(chuàng)建. 注意這些選項(xiàng)只在ELF系統(tǒng)中有效.