今天编译程序时遇到了一个问题,程序死活提示找不到rpl_malloc符号,网上搜索了一下,有说要把configure.ac中的 AC_MALLOC_FUNC去掉的,去掉了还是不行;有说configure时加with-gnu-ld的也不行;有说configure的cache 文件修改变量值还是不行。
搜索所有的文件内容都没有发现有使用rpl_malloc的地方,知道是malloc被替换的但死活找不到什么时候替换 的。
只好gcc -E 看预处理完的代码,发现所有的malloc已经被替换成了rpl_malloc。
把#include的文件挨个注 释掉,最后发现是引用的别的库的头文件中导致了,再那个头文件中有#define malloc rpl_malloc。修改这个库的头文件即可。
顺便把另外的库中的configure.ac修改了一下,去掉了AC_MALLOC_FUNC,这样即使重新编译这个库也不会导致问题了。
搜索所有的文件内容都没有发现有使用rpl_malloc的地方,知道是malloc被替换的但死活找不到什么时候替换 的。
只好gcc -E 看预处理完的代码,发现所有的malloc已经被替换成了rpl_malloc。
把#include的文件挨个注 释掉,最后发现是引用的别的库的头文件中导致了,再那个头文件中有#define malloc rpl_malloc。修改这个库的头文件即可。
顺便把另外的库中的configure.ac修改了一下,去掉了AC_MALLOC_FUNC,这样即使重新编译这个库也不会导致问题了。