cmake源碼靜態編譯
如需轉載請標明出處:http://blog.csdn.net/itas109
QQ技術交流羣:129518033
環境:
OS : centos 7
編譯器: gcc/g++ 4.8.5
前言
cmake的源碼編譯速度很慢,在x86_64架構下cmake有cmake-3.17.3-Linux-x86_64.sh的通用可執行程序。那麼這個程序是如何通過源碼編譯的呢?
1.cmake直接編譯
git clone https://github.com/Kitware/CMake.git
cd CMake
./bootstrap
make
sudo make install
$ ldd bin/cmake
linux-vdso.so.1 => (0x00007ffde6cfc000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f972a6a5000)
librt.so.1 => /lib64/librt.so.1 (0x00007f972a49d000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f972a281000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f9729f7a000)
libm.so.6 => /lib64/libm.so.6 (0x00007f9729c78000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f9729a62000)
libc.so.6 => /lib64/libc.so.6 (0x00007f9729695000)
/lib64/ld-linux-x86-64.so.2 (0x00007f972a8a9000)
2.cmake靜態編譯
git clone https://github.com/Kitware/CMake.git
cd CMake
vi CMakeLists.txt
增加靜態設置
set(CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++")
安裝glibc和libstdc++的靜態庫
yum install glibc-static libstdc++-static
進行靜態編譯
./bootstrap
make
sudo make install
查看鏈接庫,已經沒有libstdc++.so.6和libgcc_s.so.1
$ ldd bin/cmake
linux-vdso.so.1 => (0x00007ffd61da5000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f76a406c000)
librt.so.1 => /lib64/librt.so.1 (0x00007f76a3e64000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f76a3c48000)
libm.so.6 => /lib64/libm.so.6 (0x00007f76a3946000)
libc.so.6 => /lib64/libc.so.6 (0x00007f76a3579000)
/lib64/ld-linux-x86-64.so.2 (0x00007f76a4270000)
License
License under CC BY-NC-ND 4.0: 署名-非商業使用-禁止演繹
如需轉載請標明出處:http://blog.csdn.net/itas109
QQ技術交流羣:129518033
Reference:
NULL