CMake使用流程
安装
tar -xvf cmake-3.9.2.tar.gz
cd cmake-3.9.2
./configure --prefix=/usr/local/cmake
gmake
gmake install
安装完后,执行cmake --version会报如下错误
CMake Error: Could not find CMAKE_ROOT !!!
CMake has most likely not been installed correctly.
Modules directory not found in
/Applications/CMake 2.8-11.app/Contents/bin
CMake Error: Error executing cmake::LoadCache(). Aborting.
===========解决方法
先执行:hash -r
然后再执行:cmake --version
编写CMakeLists.txt
-
编译的源文件有哪些,要输出应用程序,编译时需要连接什么库,头文件的搜索路径,一般将该文件放到源码包的根路径
-
在源码包根路径下创建build目录,进入build目录执行cmake ../生成适配当前环境的Makefile
-
执行
make
进行编译,需要的话,还可以继续执行make install
进行安装
hello_world
-
目录结构
-
CMakeLists.txt
-
创建build目录,并进入该目录
-
make
进阶
- 搜索目录下所有源文件:
- aux_source_directory(路径 变量)
- 编译库
- add_library(库名 动态库或静态库 源码们)
- 指定可执行程序的依赖库
- target_link_libraries
aux_source_directory(./utils UTILS_SRC)
add_executable(main ${ROOT_SRC} ${MODULES_SRC} ${UTILS_SRC})
高级示例
主
cmake_minimum_required (VERSION 3.0)
project("demo2")
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)
aux_source_directory(. ROOT_SRC)
aux_source_directory(./modules MODULES_SRC)
add_subdirectory(utils)
add_executable(main ${ROOT_SRC} ${MODULES_SRC})
target_link_libraries(main sample_utils)
子
aux_source_directory(. UTILS_SRC)
add_library(sample_utils SHARED ${UTILS_SRC})