CMake

cmake

简介

Cmake是众多make工具中的一种,对代码进行编译,测试以及打包操作的跨平台工具,cmake在工作时,主要分为两部分。首先,编写cmaklists.txt文件,然后用cmake命令将CMakeLists.txt文件转化为make所需要的makefile文件,最后用make命令编译源码生成可执行程序或共享库

优点

  • 源码是跨平台的,可以直接用cmake在linux下编译
  • 源码和工程文件分开,便于代码版本管理

常用命令

  • 指定cmake最小版本,防止因为cmake语法不向下兼容。

    cmake_minimum_required(VERSION 3.4.1)
    
  • 设置项目名称

    project(demo)
    
  • 设置编译类型

    add_executable(demo demo.cpp) # 生成可执行文件
    add_library(common STATIC util.cpp) # 生成静态库
    add_library(common SHARED util.cpp) # 生成动态库或共享库
    
  • 搜寻文件

    file(GLOB APP_LIB "*.h" "*.cpp")
    add_library(uavDetect SHARED ${APP_LIB})
    
  • 添加链接库

    target_link_libraries(uavDetect ${OpenCV_LIBS})
    
  • 查找依赖包

    find_package(OpenCV)
    

注意事项

  • 之前工程文件调用了opencv库,在编译的时候是默认用了X86架构,但是opencv只有64位的,所以一直报错,最初以为cmake没有找到opencv的路径,最后发现是默认调用了win32编译器,在gui界面换一下就好,然后在gui里生成。
  • 在使用时,最好把源码和工程分开,这样相对好管理。
  • 在gui里配置,首先选择编译器vs还是mingw等等,其实要选对架构,x64 or x86

emmmmm,好多语法还不熟悉,以后慢慢补充吧

后续。。。。。