Linux安裝jemalloc筆記


前言

最近研究一個工具庫需要用 jemalloc 做內存分配器,但在 ubuntu 下安裝過程中遇到很多問題,故記下安裝過程的筆記,避免以后遇到在這上面浪費時間。

安裝過程

環境:VMware Ubuntu 18.04.3 LTS

cd ~/桌面
wget https://github.com/jemalloc/jemalloc/releases/download/5.0.1/jemalloc-5.0.1.tar.bz2
tar -jxvf jemalloc-5.0.1.tar.bz2
cd jemalloc-5.0.1
sudo apt-get install autogen autoconf

./autogen.sh
make -j2
sudo make install
sudo ldconfig
cd ../
rm -rf jemalloc-5.0.1 jemalloc-5.0.1.tar.bz2

注意安裝 jemalloc 不要放在共享目錄中. 例如可以放在桌面上. 因為安裝過程中需要建立

 ln -sf libjemalloc.so.2 lib/libjemalloc.so

軟鏈在共享目錄的分區情況下會出問題(因為我的Ubuntu 是在 VMWare 中, 共享目錄無法軟鏈). 

Linux下找不到so文件的解決辦法

但在啟動應用程序報找不到libjemalloc.so.2的提示,如下圖所示:

even@ubuntu:~/workspace/co/build$ ./log.exe 
./log.exe: error while loading shared libraries: libjemalloc.so.2: cannot open shared object file: No such file or directory

首先在系統搜索是否有這個文件:

even@ubuntu:~/workspace/co/build$ sudo find / -name libjemalloc.so.2
[sudo] password for even: 
/usr/local/lib/libjemalloc.so.2
find: ‘/run/user/1000/gvfs’: Permission denied

既然有這個文件,我們就把他加入到/etc/ld.so.conf中,打開這個文件發現里面內容如下:

將.so文件路徑的目錄添加到/etc/ld.so.conf

even@ubuntu:~/workspace/co/build$ cat /etc/ld.so.conf
include /etc/ld.so.conf.d/*.conf

看看/etc/ld.so.conf.d目錄下的文件:

even@ubuntu:~/workspace/co/build$ ls /etc/ld.so.conf.d/
fakeroot-x86_64-linux-gnu.conf  x86_64-linux-gnu.conf
libc.conf                       zz_i386-biarch-compat.conf
vmware-tools-libraries.conf

於是在該目錄下創建一個other.conf文件。內容如下:

/usr/local/lib/

保存退出,重新加載環境配置:

sudo ldconfig

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM