Issue
I'm using CMake 3.21.3 - from Kitware's download page (binary distribution). I've noticed that:
$ ldd `which cmake`
linux-vdso.so.1 (0x00007fff0ed12000)
libgtk3-nocsd.so.0 => /usr/lib/x86_64-linux-gnu/libgtk3-nocsd.so.0 (0x00007fdc4a890000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fdc4a88a000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fdc4a87f000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fdc4a85d000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fdc4a719000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fdc4a554000)
/lib64/ld-linux-x86-64.so.2 (0x00007fdc4a8d3000)
contains references to two unexpected libraries. One is librt, which is probably explained by its use within cmlibuv
(which CMake in turn uses); but the other, which I can't explain, is libgtk3-nocsd. Why would the CMake binary (not cmake-gui
mind you) use this library?
Solution
It's not linked against libgtk3-nocsd
. Something in your environment has set LD_PRELOAD to add libgtk3-nocsd
. Try running ldd
again with LD_PRELOAD unset.
$ curl -s -L -O https://github.com/Kitware/CMake/releases/download/v3.21.3/cmake-3.21.3-linux-x86_64.tar.gz
$ shasum cmake-3.21.3-linux-x86_64.tar.gz
5461d4f066a728445e0b6be0e4d250b828323908 cmake-3.21.3-linux-x86_64.tar.gz
$ tar xf cmake-3.21.3-linux-x86_64.tar.gz
$ cd cmake-3.21.3-linux-x86_64/bin
$ shasum cmake
9c0032147cde3739e121c092013d13eb21c3ce34 cmake
$ unset LD_PRELOAD
$ ldd cmake
linux-vdso.so.1 (0x00007fffe0191000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f65af676000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f65af66b000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f65af649000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f65af505000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f65af340000)
/lib64/ld-linux-x86-64.so.2 (0x00007f65af684000)
Answered By - nega