ltcmalloc is a library used in Linux based systems. This library is used for memory allocation.
You can find this library files in /usr/lib/.
But some time we get an error cannot find -ltcmalloc
Here is the screen shot of error
This is because of missing ltcmalloc in your system.
I run Opencontrail unit test and get this error
I automate the solution of this you can use the script bellow or use manual method given below
If it shows result like this
You can find this library files in /usr/lib/.
But some time we get an error cannot find -ltcmalloc
Here is the screen shot of error
This is because of missing ltcmalloc in your system.
I run Opencontrail unit test and get this error
I automate the solution of this you can use the script bellow or use manual method given below
Automated Solution:
Put this code in .sh file and run it as root (using sudo)
command -v git >/dev/null 2>&1 || { echo >&2 "I require git but it's not installed. Aborting."; exit 1; }
git clone https://github.com/imranhassanabdi/tcmalloc-files.git
sudo cp -r tcmalloc-files/tc-malloc/* /usr/lib/.
sudo cp tcmalloc-files/libunwind.so.8 /usr/lib/x86_64-linux-gnu/
sudo rm -r tcmalloc-files/
sudo cd /usr/lib/
sudo ln -s libtcmalloc_and_profiler.so.4.1.2 libtcmalloc_and_profiler.so.4
sudo ln -s libtcmalloc_and_profiler.so.4.1.2 libtcmalloc_and_profiler.so
sudo ln -s libtcmalloc_debug.so.4.1.2 libtcmalloc_debug.so.4
sudo ln -s libtcmalloc_debug.so.4.1.2 libtcmalloc_debug.so
sudo ln -s libtcmalloc_minimal_debug.so.4.1.2 libtcmalloc_minimal_debug.so.4
sudo ln -s libtcmalloc_minimal_debug.so.4.1.2 libtcmalloc_minimal_debug.so
sudo ln -s libtcmalloc_minimal.so.4.1.2 libtcmalloc_minimal.so.4
sudo ln -s libtcmalloc_minimal.so.4.1.2 libtcmalloc_minimal.so
sudo ln -s libtcmalloc.so.4.1.2 libtcmalloc.so.4
sudo ln -s libtcmalloc.so.4.1.2 libtcmalloc.so
sudo ldconfig
Manual Solution:
- Run this command in /usr/lib
ll | grep ltcmaloc
- If you get nothing means you have missing ltcmalloc files
- Next you download ltcmalloc files, I have uploaded all files here you can clone it
- Copy all files in tc-malloc to /usr/lib using this command
sudo cp -r tcmalloc-files/tc-malloc/* /usr/lib/.
- Then copy the other file in clone directory
sudo cp tcmalloc-files/libunwind.so.8 /usr/lib/x86_64-linux-gnu/
- Then run these commands in sequence to make linking between files
sudo ln -s libtcmalloc_and_profiler.so.4.1.2 libtcmalloc_and_profiler.so.4
sudo ln -s libtcmalloc_and_profiler.so.4.1.2 libtcmalloc_and_profiler.so
sudo ln -s libtcmalloc_debug.so.4.1.2 libtcmalloc_debug.so.4
sudo ln -s libtcmalloc_debug.so.4.1.2 libtcmalloc_debug.so
sudo ln -s libtcmalloc_minimal_debug.so.4.1.2 libtcmalloc_minimal_debug.so.4
sudo ln -s libtcmalloc_minimal_debug.so.4.1.2 libtcmalloc_minimal_debug.so
sudo ln -s libtcmalloc_minimal.so.4.1.2 libtcmalloc_minimal.so.4
sudo ln -s libtcmalloc_minimal.so.4.1.2 libtcmalloc_minimal.so
sudo ln -s libtcmalloc.so.4.1.2 libtcmalloc.so.4
sudo ln -s libtcmalloc.so.4.1.2 libtcmalloc.so
sudo ldconfig
- Now check that library install successfully using this command
ldconfig -p | grep tcmalloc
If it shows result like this
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
Then you are successful in copying filing and linking these files.

