cmake

Ling Yu
ubuntu20.0等linux系统安装升级nginx
1 安装包编译安装
1.1 下载安装包
wget https://cmake.org/files/v3.23/cmake-3.23.1.tar.gz
解压
tar -xvzf cmake-3.23.1.tar.gz
安装必须依赖
apt install openssl
apt install libssl-dev
进入解压目录,配置成功之后显示:CMake has bootstrapped. Now run make.
./configure
编译安装
make && make install # 默认安装目录在/usr/local/bin
2. 多版本配置
通过update-alternatives建立文件关联 首先要让系统知道我们安装了多个版本的gcc
# 命令最后的 20和50是优先级,如果使用auto选择模式,系统将默认使用优先级高的
sudo update-alternatives --install /usr/bin/cmake cmake /usr/bin/cmake 20
sudo update-alternatives --install /usr/bin/cmake cmake /usr/local/bin/cmake 50
1.1 cmake构建
mkdir build && cd build # 在项目目录
cd build && cmake .. # linus
cd build && cmake .. -G"Ninja" # win+msys2+mingw64+ninja
cd build && cmake .. -G"MSYS Makefiles" # win+msys2+mingw64
cmake .. -G"MSYS Makefiles" -DCMAKE_EXPORT_COMPILE_COMMANDS=1
1.2 cmake安装
方法一:
cmake --build . --target install
cmake --build . --target install --config release
make install # 或者针对make构建工具
方法二:
更加优雅的方法是在cmake3.15版本往后,使用cmake --install命令:
cmake --install . --prefix "../output"
--install指定构建目录;--prefix指定安装路径,覆盖安装路径变量CMAKE_INSTALL_PREFIX。
cmake打包
要使用打包功能,需要执行include(CPack)启用相关的功能。
include(CPack)会在构建路径(Build tree)下生成两个cpack的配置文件,CPackConfig.cmake和CPackSourceConfig.cmake,其实也就对应了两个构建目标:package和package_source;
配合cpack命令,使用-G参数指定生成器,常用的有ZIP、TGZ、7Z等,可以同时指定多个,格式也是CMake语法中的列表,例如其默认值"STGZ;TGZ";--config参数可以指定打包配置文件,比如:
方法一:
cpack -G TGZ --config CPackConfig.cmake
cpack -G TGZ --config CPackSourceConfig.cmake
方法二:
当然也可以使用cmake命令:
cmake --build . --target package
cmake --build . --target package_source
方法三:
如果使用make作为构建工具,可以简单地执行:
make package
make package_source