![为什么 autoconf 找不到 `libtcmalloc`?](https://linux22.com/image/198866/%E4%B8%BA%E4%BB%80%E4%B9%88%20autoconf%20%E6%89%BE%E4%B8%8D%E5%88%B0%20%60libtcmalloc%60%EF%BC%9F.png)
我正在尝试编译一个复杂的数值模拟软件。运行后autoconf
(./configure ...
使用其他一些标志),我在输出中看到以下内容:
checking for malloc in -ltcmalloc... no
configure: WARNING: No tcmalloc support available.
进去后configure.in
我发现:
%zsh> grep 'tcmalloc' configure.in
AC_CHECK_LIB(tcmalloc,malloc,,AC_MSG_WARN([No tcmalloc support available.]))
我有性能工具我认为安装的应该提供 tcmalloc。我确实有一些类似的库:
%zsh> ldconfig -p|grep 'tcmalloc'
libtcmalloc_minimal_debug.so.4 (libc6,x86-64) => /usr/lib/libtcmalloc_minimal_debug.so.4
libtcmalloc_minimal_debug.so (libc6,x86-64) => /usr/lib/libtcmalloc_minimal_debug.so
libtcmalloc_minimal.so.4 (libc6,x86-64) => /usr/lib/libtcmalloc_minimal.so.4
libtcmalloc_minimal.so (libc6,x86-64) => /usr/lib/libtcmalloc_minimal.so
libtcmalloc_debug.so.4 (libc6,x86-64) => /usr/lib/libtcmalloc_debug.so.4
libtcmalloc_debug.so (libc6,x86-64) => /usr/lib/libtcmalloc_debug.so
libtcmalloc_and_profiler.so.4 (libc6,x86-64) => /usr/lib/libtcmalloc_and_profiler.so.4
libtcmalloc_and_profiler.so (libc6,x86-64) => /usr/lib/libtcmalloc_and_profiler.so
libtcmalloc.so.4 (libc6,x86-64) => /usr/lib/libtcmalloc.so.4
libtcmalloc.so (libc6,x86-64) => /usr/lib/libtcmalloc.so
我尝试将其添加libtcmalloc
到列表中,configure.in
但只得到:
checking for tcmalloc in -llibtcmalloc... ./configure: line 11516: WARNING:: command not found
no
有没有办法让 autoconfAC_CHECK_LIB
检测我的 tcmalloc 库?
答案1
不确定这是“修复”还是“解决方法”,我意识到如果没有有关相关软件的更多信息,很难提供帮助,但我可以通过-ltcmalloc
在配置标志中显式添加到 LIBS 来避免警告:
./configure LIBS='-ltcmalloc ...' ...
11月27日更新:
即使没有解决方法,我也无法再重现该警告。我可能使用了一组略有不同的配置 fag,或者以某种方式搞乱了我的配置脚本。我将把它留在这里,以防解决方法对其他人有帮助。