cmake源碼靜態編譯

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章