Chinaunix首页 | 论坛 | 博客
  • 博客访问: 359377
  • 博文数量: 94
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 606
  • 用 户 组: 普通用户
  • 注册时间: 2015-09-30 08:58
个人简介

x

文章分类

全部博文(94)

文章存档

2019年(4)

2018年(10)

2017年(26)

2016年(38)

2015年(16)

我的朋友

分类: C/C++

2017-10-24 10:17:00

1.cmake_minimum_required
    语法:cmake_minimum_required(VERSION X.X)
    说明:CMake最低版本号要求
    示例:cmake_minimum_required(VERSION 3.5)

2.project
    说明:指定项目名称
    示例:project(target)

3.add_executable
    语法:add_executable(target source1 source2 ...)
    说明:指定生成目标及依赖文件
    示例:add_executable(target main.cpp)

4.set
    语法:set(var value1 value2 ...)
    说明:设置变量
    示例:set(CMAKE_C_STANDARD 99)
          set(SOURCE_FILES main.c util/memory_pool.c util/memory_pool.h util/list.h)

5.include_directories
    语法:include_directories(path1 path2 ...)
    说明:向工程添加多个特定的头文件搜索路径
    示例:include_directories(./include ./util/include)

6.link_directories
    语法:link_directories(directory1 directory2 ...)
    说明:添加非标准的共享库搜索路径,相当于gcc命令-L选项,相当于设置LD_LIBRARY_PATH
    示例:link_directories(./lib)

7.find_package()
    语法:find_package(libname [REQUIRED]),REQUIRED可忽略
    说明:cmake程序会在/usr/share/cmake-x.x/Modules/目录下,寻找FindXXX.cmake文件,
    通过这个文件,读取所有关于XXX库的安装信息,如:头文件路径,共享库路径
    示例:find_package(Threads),找到/usr/share/cmake-x.x/Modules/FindThreads.cmake后
            获取到变量:set(CMAKE_THREAD_LIBS_INIT -lthread),这时在自己的CMakeLists中使用此变量

8.target_link_libraries
    语法:target_link_libraries(target lib1 lib2 ...)
    说明:为target添加需要链接的链接库
    示例:target_link_libraries(target pcap codec) 或
          target_link_libraries(target -lpcap -lcodec) 或
          target_link_libraries(target libpcap.so -libcodec.so)

9.message
    语法:message([SEND_ERROR | STATUS | FATAL_ERROR] "message to display" …)
    说明:输出用户定义的信息,MESSAGE([SEND_ERROR | STATUS | FATAL_ERROR] “message to display” …)
          FATAL_ERROR:FATAL_ERROR会停止编译
    示例:message("hello world")

10.aux_source_directory
    说明:查找当前目录下所有源文件,并将名称保存到指定的变量
    示例:aux_source_directory(. DIR_SRCS)
    
11.add_subdirectory
    语法:add_subdirectory(subdir)
    说明:添加子目录,有多个子目录需分别添加
    示例:add_subdirectory(utils)
    
12.add_library
    语法:add_library(libname [SHARED|STATIC|MODULE] [EXCLUDE_FROM_ALL] source1 source2 ... sourceN)
    说明:生成链接库,默认为STATIC,MODULE使用dyld的系统有效,不支持的被当作SHARED对待
          EXCLUDE_FROM_ALL参数的意思是这个库不会被默认构建,除非有其他的组件依赖或者手工构建。
    示例:aux_source_directory(. DIR_LIB_SRCS)
          add_library(MathLib ${DIR_LIB_SRCS})
          target_link_libraries(ProjTest MathLib)
          
    
阅读(2761) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~