cmakelists 语法学习

1.项目最外层cmake编写:----------用于kdevelop编译器

 1 project(filtering)
 2 
 3 cmake_minimum_required(VERSION 2.8)  ————必须有的
 4 
 5 include_directories(${PROJECT_SOURCE_DIR}/src)   ————设置include头文件查找路径
 6 link_directories (${PROJECT_BINARY_DIR}/lib)    ————设置库文件搜索路径
 7 
 8 set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
 9 
10 add_subdirectory(src)
11 add_subdirectory(lib)

第一行 project 不是强制性的,但最好始终都加上。

同时,cmake自动定义了两个等价的变量

  • PROJECT_BINARY_DIR 和 PROJECT_SOURCE_DIR

因为是out-of-source方式构建,所以我们要时刻区分这两个变量对应的目录。

一般解释:

${PROJECT_SOURCE_DIR}:表示当前目录下

${PROJECT_BINARY_DIR}:工程当前编译目录(在新建工程的时候设置的,一般为build下)

可以通过message来输出变量的值:

  message(STATUS ${PROJECT_SOURCE_DIR})

  测试结果:PROJECT_SOURCE_DIR-- /home/zzy/profin/filtering     

         PROJECT_BINARY_DIR --- /home/zzy/profin/filtering/build

2.cmkae命令介绍

set 命令用来设置变量:(变量都是关联着相应程序文件的如.c .cpp)

  set(TESTNAD_SRCS main.cpp) ,前一个为变量名称,后一个为其关联的文件,多个文件用空格分开。

add_exectuable 告诉工程生成一个可执行文件:

  add_executable(testnad ${TESTNAD_SRCS}) ,前一个为可执行文件名称,后一个为变量值。

add_library 则告诉生成一个库文件:

  add_library(nad ${NAD_SRCS}),前者为当前所在文件夹名称,后者为变量名称。

aux_source_directory(<dir> <variable>):

  搜集所有在指定路径下的源文件的文件名,将输出结果列表储存在指定的<variable>变量中,非常好用。即指定该文件夹下所有文件都在变量中。

注意:CMakeList.txt 文件中,命令名字是不区分大小写的,而参数和变量是大小写相关的。

3.使用openmp:

1 option(ENABLE_OMP "Enables OpenMP, and has additional dependencies" ON)  ----可放在最外层cmakelists中
2 if(ENABLE_OMP)
3      find_package(OpenMP REQUIRED)
4      set(CMAKE_C_FLAGS "${OpenMP_C_FLAGS} ${CMAKE_C_FLAGS}")
5      set(CMAKE_CXX_FLAGS "${OpenMP_CXX_FLAGS} ${CMAKE_C_FLAGS}")
6 endif(ENABLE_OMP)

如此,在程序中加入openmp编程语言既可使用。

 

 

转载于:https://www.cnblogs.com/Anita-z/p/3806138.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值