cmake语法学习

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

×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××

eg:

project(filtering)

cmake_minimum_required(VERSION 2.8)  ————必须有的

include_directories(${PROJECT_SOURCE_DIR}/src)   ————设置include头文件查找路径
link_directories (${PROJECT_BINARY_DIR}/lib)     ————设置库文件搜索路径

set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)

add_subdirectory(src)
add_subdirectory(lib)

××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××

第一行 project 不是强制性的,但最好始终都加上。这一行会引入两个变量

  • FILTERING_BINARY_DIR 和 FILTERING_SOURCE_DIR

同时,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

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

add_exectuable 告诉工程生成一个可执行文件。eg:add_executable(testnad ${TESTNAD_SRCS}) ,前一个为可执行文件名称,后一个为变量值。

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

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

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

cmake语法学习

时间: 2024-10-10 17:48:45

cmake语法学习的相关文章

正则表达式语法学习

正则表达式用到的地方很多很广,一般用于验证 此文讲解了正则表达式的语法,以下内容转自网友[丰衣足食]的帖子 一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式.该模式描述在查找文字主体时待匹配的一个或多个字符串.正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配. \ 将下一个字符标记为一个特殊字符.或一个原义字符.或一个 后向引用.或一个八进制转义符.例如,'n' 匹配字符 "n".'\n' 匹配一个换行符.序列 '\\' 匹配

【JavaScript】02.基础语法学习

[JavaScript]02.基础语法学习 引言: 老农认为(老农是我对自己的昵称),学习任何一门计算机程序语言都要先从它的语法知识开始.计算机程序语言由一堆预定义的字符和书写这些字符的规则组成.这些预定义的字符在语言里面叫做关键字或者保留字,书写这些字符的规则叫做语法. 计算机语言(Computer Lnguage),是指用于人与计算机之间通讯的语言.语言分为自然语言与人工语言两大类.自然语言是人类在自身发展的过程中形成的语言,是人与人之间传递信息的媒介.人工语言指的是人们为了某种目的而自行设

Java语法学习概述

Java语法学习概述: 1,数值型有:    整数类型分     byte:127到-128 8位(1个字节);只用后七位表示数字 第一位表            示正负号;特点最基本数据单元,占空间少 short:16位(2个字节)短整型 -32768到32767 int:32位(4个字节) 整型 正负21亿 写程序大部分用int写 long:64位(8个字节) 长整型 +-922后面16个零多           数字后面加字母L 或小写l 表示long型数据           用数字表示

转 python语法学习面向对象之继承

传送门 python语法学习面向对象之继承 只要涉及到面向对象,”类“是必须出现的一个代名词. 类和对象是面向对象编程的两个主要方面.类创建一个新类型,而对象是这个类的实例. 类的一些概念: 包括初始化方法__init__,可以理解为构造,self,理解为this,等等在前一篇文章中介绍过,现在就学习类的继承. 继承: 面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过继承机制.继承完全可以理解成类之间的类型和子类型关系. 需要注意的地方:继承语法   class 派生类

Swift高级语法学习总结(转)

Swift高级语法学习总结 1.函数 1.1 func funcNmae()->(){} 这样就定义了一个函数,它的参数为空,返回值为空,如果有参数和返回值直接写在两个括号里就可以了 1.2 参数需要指明类型,而如果没有返回值可以不写->(),返回值只需要写返回类型,如果写了返回名称,可以在函数调用后的值用点语法访问 1.3 在参数名称前可以加上外部参数名,调用的时候就可以带上它了,如果外部参数名和内部参数名相同则可以直接在内部参数名前加#即可 1.4 如果跟参数设置一个默认值,则swift会

Swift基础语法学习总结(转)

Swift基础语法学习总结 1.基础  1.1) swift还是使用// 和/* */ 来注释,并且/* */允许多行注释. 1.2) swift使用print和println打印,它的传参是一个泛型,几乎所有类型都是可打印的. 1.3) swift在语句后面加分号与否都是正确的,但是swift偏好的风格是不在结尾处加分号的.如果有多个语句,必须用分号隔开. 1.4) 在一个数字中庸下划线(_)会被忽视,方便认出大数值的的数字,也可以在前面补零. 1.5) swift不允许在不同种类型间做加减乘

python 语法学习

同时给x,y,z赋值: x,y,z=1,2,3 x值与y的值交换 x,y=y,x python 语法学习

Robot Framework语法学习(一)

Robot Framework语法学习: 一.变量的声明.赋值与使用 1.变量标识符:每个变量都可以用  变量标识符 ${变量名} 来表示. 2.变量声明:可以在TestSuite上点右键或者在Edit区点Add Scalar或Add List来新增变量. 3.变量赋值: 1)Set赋值:通常这种方式主要使用Set Variable或类似的使用了Set的关键字对变量进行赋值 ${type}  Set Variable  2013 2) Get赋值:主要用于返回值上,包括系统关键字的返回值和用户关

Markdown语法学习记录

记录一下Markdown的语法,方便以后使用. 先把转义符写在最前面,没有它写不来这篇日志 加入链接 [链接显示的内容](链接的Link) 比如我要连接这篇讲解Markdown语法的文章链接显示的内容还可以给链接加Title,就是鼠标放在连接上时显示的内容.链接显示的内容 加粗 斜体 加两个星号**或下划线__表示加粗 比如加粗 加粗加入一个星号*或一个下划线_表示斜体 斜体 _ 斜体_ 段落级别 # 一级标题 二级标题 ## 二级标题 三级标题 ### 三级标题 四级标题 #### 四级标题