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})   

posted on 2021-07-13 08:59  lodger47  阅读(433)  评论(0编辑  收藏  举报

导航