redis 安裝fatal error: jemalloc/jemalloc.h: No such file or directory 錯誤

問題現象:

我第一次安裝redis時,沒有安裝gcc,報錯了,然後安裝好gcc,後再次執行make命令,安裝redis就出現瞭如上的錯誤

網上錯誤解決辦法

網上大部分解決辦法都是錯誤的,如下文:

(錯誤解決辦法)

make MALLOC=libc

正確解決辦法

正確解決辦法(針對2.2以上的版本)
清理上次編譯殘留文件,重新編譯

make distclean  && make

導致出現這個錯誤的原因

  錯誤的本質是我們在開始執行make 時遇到了錯誤(大部分是由於gcc未安裝),然後我們安裝好了gcc 後,我們再執行make ,這時就出現了jemalloc/jemalloc.h: No such file or directory。這是因爲上次的

編譯失敗,有殘留的文件,我們需要清理下,然後重新編譯就可以了。

網上的解決辦法是有什麼錯誤嗎?

  網上的解決辦法雖然最後也是可以成功安裝好 redis ,但是是有一些隱患的,首先我們要知道redis 需要使用內存分配器的, make MALLOC=jemalloc 就是指定內存分配器爲 jemalloc ,make MALLOC=libc 就是指定內存分配器爲 libc ,這個是有安全隱患的,jemalloc 內存分配器在實踐中處理內存碎片是要比libc 好的,而且在README.md 文檔也說明到了,jemalloc內存分配器也是包含在源碼包裏面的,可以在deps 目錄下看到 jemalloc 目錄。

 

原文地址:https://www.cnblogs.com/oxspirt/p/11392437.html

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章