为什么 autoconf 找不到 `libtcmalloc`?

为什么 autoconf 找不到 `libtcmalloc`?

我正在尝试编译一个复杂的数值模拟软件。运行后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,或者以某种方式搞乱了我的配置脚本。我将把它留在这里,以防解决方法对其他人有帮助。

相关内容