Linux【8】-软件管理-1-7-CMake
CMake是一个比make更高级的编译配置工具,它可以根据不同平台、不同的编译器,生成相应的Makefile或者vcproj项目。
通过编写CMakeLists.txt,可以控制生成的Makefile,从而控制编译过程。CMake自动生成的Makefile不仅可以通过make命令构建项目生成目标文件,还支持安装(make install)、测试安装的程序是否能正确执行(make test,或者ctest)、生成当前平台的安装包(make package)、生成源码包(make package_source)、产生Dashboard显示数据并上传等高级功能,只要在CMakeLists.txt中简单配置,就可以完成很多复杂的功能,包括写测试用例。
一、安装
https://cmake.org/download/ ,找到最新版本的位置。一般开放源代码软件都会有两个版本发布:
- Source Distribution 前者是源代码版,你需要自己编译成可执行软件
- Binary Distribution 后者是已经编译好的可执行版,直接可以拿来用的。
查询主机32位或64位
getconf LONG_BIT
如果结果是64表示该系统是linux64位的,如果结果是32则表示系统是linux32位。
安装:
tar -xvf cmake-3.14.5.tar
cd cmake-3.14.5
./bootstrap
make
make install
cmake 会默认安装在 /usr/local/bin 下面
查询cmake –version
cmake version 3.14.5
三、讨论
3.1 CMake 指定安装目录
方法1:
cmake -DCMAKE_INSTALL_PREFIX=/usr ..
方法二:
修改cmake文件,加入:
SET(CMAKE_INSTALL_PREFIX < install_path >)
要加在 PROJECT(< project_name>) 之后。
默认安装路径:
cmake .
make
make install
默认会安装到:
1).h文件: /usr/local/include/vid.stab
2).so文件: /usr/local/lib/libvidstab.so
四、报错
4.1 centos7.4 安装cmake could not find CMAKE_ROOT
cd /usr/local/
tar -zxv -f cmake-3.13.0-rc2.tar.gz
cd cmake-3.13.0-rc2
./configure
make
make install
CMake Error: Could not find CMAKE_ROOT !!!
办法1:
hash -r
办法2:
./bootstrap --prefix=/usr
gmake
gmake install
4.2 Could not find OpenSSL. Install an OpenSSL development package or configure CMake with -DCMAKE_US
安装cmake时,运行
./configure
报错:
g++ has <ext/stdio_filebuf.h>
---------------------------------------------
gmake: `cmake' is up to date.
loading initial cache file /usr/local/cmake-3.17.0-rc2/Bootstrap.cmk/InitialCacheFlags.cmake
-- Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY OPENSSL_INCLUDE_DIR)
CMake Error at Utilities/cmcurl/CMakeLists.txt:454 (message):
Could not find OpenSSL. Install an OpenSSL development package or
configure CMake with -DCMAKE_USE_OPENSSL=OFF to build without OpenSSL.
-- Configuring incomplete, errors occurred!
See also "/usr/local/cmake-3.17.0-rc2/CMakeFiles/CMakeOutput.log".
See also "/usr/local/cmake-3.17.0-rc2/CMakeFiles/CMakeError.log".
---------------------------------------------
Error when bootstrapping CMake:
Problem while running initial CMake
---------------------------------------------
解决
rm -f CMakeCache.txt
yum -y install ncurses-devel
yum install openssl-devel
这里是一个广告位,,感兴趣的都可以发邮件聊聊:tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn