C++ 函数名别名

C++ 函数名别名,c++,c,function,alias,C++,C,Function,Alias,我有一个调用函数的库:例如malloc。 我在应用程序中使用库。我希望库不调用malloc,而是在每次调用malloc时定义mymalloc的函数。 简而言之,我希望使用具有不同名称的my符号解析malloc符号 我尝试了这个链接器选项:-Wl,-defsym=malloc=mymalloc 它只适用于应用程序中的调用 ie:程序中对malloc的每次调用都会解析为mymalloc,但库中的调用仍然会调用stdlibc malloc 非常感谢, Davide这很粗糙,但您可以使用预处理器-优点是

我有一个调用函数的库:例如malloc。 我在应用程序中使用库。我希望库不调用malloc,而是在每次调用malloc时定义mymalloc的函数。 简而言之,我希望使用具有不同名称的my符号解析malloc符号

我尝试了这个链接器选项:-Wl,-defsym=malloc=mymalloc

它只适用于应用程序中的调用 ie:程序中对malloc的每次调用都会解析为mymalloc,但库中的调用仍然会调用stdlibc malloc

非常感谢,
Davide

这很粗糙,但您可以使用预处理器-优点是预处理器在编译之前运行:

定义malloc mymalloc

在包含任何标准库之前,您必须包含包含mymalloc声明的文件


您还必须自己重建任何已编译的库。事实上,我建议在生产环境中这样做:我认为代码很脆弱,可能会有不匹配的malloc潜伏在每个角落。

可行性取决于它是编译库还是仅头库。这是什么?为什么不能调用函数malloc?或者编写一个malloc来委托给mymalloc?根据malloc库的实现情况,您可能还需要替换calloc、realloc、memalign和free。有些库允许您连接到Memory分配,并提供自己的自定义分配器。如果您的支持,您可以在链接器中获得您想要的结果,而无需任何黑客攻击你可能想说,实际上我建议不要在生产中这样做