我有一个调用函数的库:例如malloc。
我在申请中使用了图书馆。我希望库不调用malloc,而是在每次调用malloc时定义“mymalloc”的函数。
简而言之,我希望使用具有不同名称的my符号解析malloc符号。
我尝试过这个链接器选项:-Wl,--defsym=malloc=mymalloc
它只对应用程序中的调用有效
ie:程序中对malloc的每个调用都解析为mymalloc,但是库中的调用仍然调用stdlibc malloc。
谢谢,
达维德
最佳答案
这很粗糙,但您可以使用预处理器—其优点是预处理器在编译之前运行:#define malloc mymalloc
在包含任何标准库之前,您必须#include
包含mymalloc
声明的文件。
您还必须自己重建任何已编译的库。实际上,我建议在生产中这样做:我认为代码将是脆弱的,并且您有可能在每个角落都潜伏着不匹配的mallocs
。
关于c++ - 函数名称别名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24137037/