Libraries

為什麼 autoconf 找不到“libtcmalloc”?

  • November 27, 2021

我正在嘗試編譯一個複雜的數值模擬軟體。執行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.]))

我安裝了gperftools,我認為它應該提供 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 庫?

不確定這是“修復”還是“解決方法”,我意識到如果沒有有關相關軟體的更多資訊,很難提供幫助,但我可以通過-ltcmalloc在配置標誌中明確添加到 LIBS 來避免警告:

./configure LIBS='-ltcmalloc ...' ...

11 月 27 日更新:

**即使沒有解決方法,我也無法再重現警告。有可能我使用了一組稍微不同的配置標誌,或者以某種方式弄亂了我的配置腳本。**如果解決方法對其他人有幫助,我將把它留在這裡。

引用自:https://unix.stackexchange.com/questions/679028