gflags版本:gflags 2.2.2
目录
编译
动态库的编译
- cmake
设置交叉编译器是重点。
lbw@DESKTOP-LBW22:/mnt/d/ref/gflags-master/_build$ cmake .. -DGFLAGS_NAMESPACE=gflags -DCMAKE_CXX_FLAGS=-fPIC -DBUILD_SHARED_LIBS=ON -DCMAKE_C_COMPILER=aarch64-linux-gnu-gcc -DCMAKE_CXX_COMPILER
=aarch64-linux-gnu-g++
-- The CXX compiler identification is GNU 6.3.1
-- Check for working CXX compiler: /usr/local/ARM-toolchain/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++
-- Check for working CXX compiler: /usr/local/ARM-toolchain/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++ -- works
...
-- Configuring done
-- Generating done
CMake Warning:Manually-specified variables were not used by the project:CMAKE_C_COMPILER-- Build files have been written to: /mnt/d/ref/gflags-master/_build
- make
lbw@DESKTOP-LBW22:/mnt/d/ref/gflags-master/_build$ make
Scanning dependencies of target gflags_shared
[ 12%] Building CXX object CMakeFiles/gflags_shared.dir/src/gflags.cc.o
[ 25%] Building CXX object CMakeFiles/gflags_shared.dir/src/gflags_reporting.cc.o
[ 37%] Building CXX object CMakeFiles/gflags_shared.dir/src/gflags_completions.cc.o
[ 50%] Linking CXX shared library lib/libgflags.so
[ 50%] Built target gflags_shared
Scanning dependencies of target gflags_nothreads_shared
[ 62%] Building CXX object CMakeFiles/gflags_nothreads_shared.dir/src/gflags.cc.o
[ 75%] Building CXX object CMakeFiles/gflags_nothreads_shared.dir/src/gflags_reporting.cc.o
[ 87%] Building CXX object CMakeFiles/gflags_nothreads_shared.dir/src/gflags_completions.cc.o
[100%] Linking CXX shared library lib/libgflags_nothreads.so
[100%] Built target gflags_nothreads_shared
静态库的编译
- cmake
lbw@DESKTOP-LBW22:/mnt/d/ref/gflags-master/_build$ cmake .. -DGFLAGS_NAMESPACE=gflags -DCMAKE_CXX_FLAGS=-fPIC -DBUILD_SHARED_LIBS=OFF -DCMAKE_C_COMPILER=aarch64-linux-gnu-gcc -DCMAKE_CXX_COMPILE
R=aarch64-linux-gnu-g++
-- Configuring done
-- Generating done
-- Build files have been written to: /mnt/d/ref/gflags-master/_build
- make
lbw@DESKTOP-LBW22:/mnt/d/ref/gflags-master/_build$ make
Scanning dependencies of target gflags_static
[ 12%] Building CXX object CMakeFiles/gflags_static.dir/src/gflags.cc.o
[ 25%] Building CXX object CMakeFiles/gflags_static.dir/src/gflags_reporting.cc.o
[ 37%] Building CXX object CMakeFiles/gflags_static.dir/src/gflags_completions.cc.o
[ 50%] Linking CXX static library lib/libgflags.a
[ 50%] Built target gflags_static
Scanning dependencies of target gflags_nothreads_static
[ 62%] Building CXX object CMakeFiles/gflags_nothreads_static.dir/src/gflags.cc.o
[ 75%] Building CXX object CMakeFiles/gflags_nothreads_static.dir/src/gflags_reporting.cc.o
[ 87%] Building CXX object CMakeFiles/gflags_nothreads_static.dir/src/gflags_completions.cc.o
[100%] Linking CXX static library lib/libgflags_nothreads.a
[100%] Built target gflags_nothreads_static
编译结果
安装
将"_build/cmake_install.cmake"文件内的"/usr/local"改为自己交叉编译器所在目录,例如,我的交叉编译器目录为“/usr/local/ARM-toolchain/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/"。
- sudo make install
lbw@DESKTOP-LBW22:/mnt/d/ref/gflags-master/_build$ sudo make install
[sudo] password for lbw:
[ 50%] Built target gflags_static
[100%] Built target gflags_nothreads_static
Install the project...
-- Install configuration: ""
-- Installing: /usr/local/ARM-toolchain/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/lib/libgflags.a
-- Installing: /usr/local/ARM-toolchain/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/lib/libgflags_nothreads.a...-- Installing: /usr/local/ARM-toolchain/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/lib/pkgconfig/gflags.pc
-- Installing: /home/lbw/.cmake/packages/gflags/e5f7ce61772240490d3164df06f58ce9
lbw@DESKTOP-LBW22:/mnt/d/ref/gflags-master/_build$ sudo make install
[ 50%] Built target gflags_shared
[100%] Built target gflags_nothreads_shared
Install the project...
-- Install configuration: ""
-- Installing: /usr/local/ARM-toolchain/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/lib/libgflags.so.2.2.2
-- Installing: /usr/local/ARM-toolchain/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/lib/libgflags.so.2.2...-- Up-to-date: /usr/local/ARM-toolchain/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/lib/pkgconfig/gflags.pc
-- Installing: /home/lbw/.cmake/packages/gflags/e5f7ce61772240490d3164df06f58ce9
另一个更方便的方式
- 更改CMakeLists.txt中的内容
- 执行 cmake .. && make
lbw@DESKTOP-LBW22:/mnt/d/ref/gflags-master/_build$ cmake .. && make
-- The CXX compiler identification is GNU 6.3.1
-- Check for working CXX compiler: /usr/local/ARM-toolchain/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++
-- Check for working CXX compiler: /usr/local/ARM-toolchain/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done...CMakeFiles/gflags_nothreads_shared.dir/src/gflags_completions.cc.o
[100%] Linking CXX shared library lib/libgflags_nothreads.so
[100%] Built target gflags_nothreads_shared
- 安装
与安装步骤的操作一样(奇怪,CMakeLists.txt中添加的set (CMAKE_INSTALL_PREFIX "/usr/local/ARM-toolchain/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/")没起作用)。