1. 程式人生 > >編譯redis時報錯zmalloc.h:50:31: 錯誤:jemalloc/jemalloc.h:

編譯redis時報錯zmalloc.h:50:31: 錯誤:jemalloc/jemalloc.h:

編譯安裝 -type decimal edi install ase ora jemalloc prefix

如果有MALLOC這環境變量,會有用這個環境變量的去建立Redis。而且libc並不是默認的內存分配器, 默認是jemalloc,因為jemalloc被證明比libc有更少的fragmentation problems。但是如果沒有jemalloc 而只有libc會make出錯。所以解決方法有如下兩種:

(1)指定參數:

make MALLOC=libc

(2)安裝jemalloc:jemalloc幹了malloc幹的活,而且幹得好一些,主要體現在避免內存碎片與並發擴展上。

  1. 下載jemalloc:

https://github.com/jemalloc/jemalloc/releases

2.編譯安裝:

./configure --prefix=/usr/local/jemalloc && make && make install

3.添加鏈接:

echo /usr/local/jemalloc/lib >> /etc/ld.so.conf

4.刷新庫:

ldconfig



編譯redis時報錯zmalloc.h:50:31: 錯誤:jemalloc/jemalloc.h: