環境:Ubuntu 3.11.3
版本:redis 3.0.7
[code]sudo make
[code]jemalloc/jemalloc.h: No such file or directory
redis編譯時,默認的allocator是jemalloc,而如果系統中沒有安裝jemalloc就會報錯
解決辦法是利用MALLOC環境變量設置默認的分配器。
[code]sudo make MALLOC=libc
[code]/usr/local/bin/ld: this linker was not configured to use sysroots
可能是/usr/local/bin/目錄下的鏈接器不支持sysroots。而redis在編譯時,首先會根據環境變量的先後順序先找到這個鏈接器,而不是配置了sysroots的鏈接器。
解決辦法:
首先將/usr/local/bin/目錄下的ld移到其它路徑,使得redis在編譯時第一個找到的鏈接器是配置了sysroots的鏈接器,等到編譯完成後,再恢復
[code]sudo mv /usr/local/bin/ld /usr/local/bin/ld.back //移除 sudo make MALLOC=libc //編譯 sudo mv /usr/local/bin/ld.back /usr/local/bin/ld //恢復
[code]sudo make install
[code]sudo mv /usr/local/bin/ld /usr/local/bin/ld.back //移除 sudo make MALLOC=libc //編譯 sudo mv /usr/local/bin/ld.back /usr/local/bin/ld //恢復 sudo make install
依次執行這幾條命令即可