cmake使用笔记,一些常用的命令
我的工程目录如下:
│ CMakeLists.txt
├─cmake_tutorial
│ CMakeLists.txt
│ cmake_tutorial.cpp
│ cmake_tutorial.h
│
└─src
│ main.cc
│
├─bundle_sort
│ bundle_sort.cc
│ bundle_sort.h
│ CMakeLists.txt
│
└─common
CMakeLists.txt
declarations.h
tools.cc
tools.h
utils.cc
顶层的CMakeList解释如下:
# CMakeList.txt: 顶层 CMake 项目文件,在此处执行全局配置
# 并包含子项目。
#
set(CMAKE_CXX_FLAGS "-std=c++11") # c++11
cmake_minimum_required (VERSION 3.8)
project ("cmake_tutorial")
#下面是编译选项,debug和Release模式的判断,需要注意的是关键字OR必须要大写
IF (CMAKE_BUILD_TYPE MATCHES "Debug" OR CMAKE_BUILD_TYPE MATCHES "DEBUG")
SET(COMPILE_FLAGS "-w -O0 -g3")
message("Debug mode")
ELSE()
SET(COMPILE_FLAGS "-w -O3 -g")
message("Release mode")
ENDIF()
# 把src里面的内容加入到SRC_DIR变量里面,注意,这个是从左到右的
aux_source_directory("./src" SRC_DIR)
# 执行shell命令,并把输出存到OUTPUT_VARIABLE指定的变量中
#execute_process(
# COMMAND bash -c "mysql_config --libs_r"
# OUTPUT_VARIABLE mysql_config_output
#)
# 如果增加多个源文件,那么这样写即可,自动会进行追加
#aux_source_directory("./src/common" SRC_DIR)
# .h文件的位置,相当于gcc编译里面的-I选项
#include_directories("./src" "./src/main")
# 需要链接的库文件目录,这里是目录,类似于LD_LIBRARY_PATH的作用,eg:LINK_DIRECTORIES("/opt/MATLAB/R2012a/bin/glnxa64")
#link_directories()
# 需要链接的库文件路径,注意,这里是全路径. eg: LINK_LIBRARIES("/opt/MATLAB/R2012a/bin/glnxa64/libeng.so")
# 注意和target_link_libraries的区别
#link_libraries()
# 包含子项目,子项目里面可能包含CMakeLists.txt文件,处理新的cmake
add_subdirectory("./src/bundle_sort")
add_subdirectory("./src/common")
# 相当于生成最后的一个可运行文件
add_executable(Cmake ${SRC_DIR})
# 增加编译选项
#add_definitions("-Wall -ansi")
# 专门用来打印消息的命令
#message("hello world. This is a print message!")
# 链接静态库
target_link_libraries(Cmake bundle_sort common)
# 连接静态库也可按照下面的方式书写
#target_link_libraries(tpcc_start -lrt -L/usr/local/mysql/lib -lmysqlclient -lpthread -lm -lssl -lcrypto -ldl)
# make install命令,表示将target Cmake二进制文件安装到SOURCE目录下(当然,实际不推荐这么做)
#install(TARGETS Cmake
# RUNTIME DESTINATION ${CMAKE_SOURCE_DIR})
cmake使用笔记,一些常用的命令的更多相关文章
- Android学习笔记_60_Android常用ADB命令
第一部分: 1. ubuntu下配置环境anroid变量: 在终端执行 sudo gedit /etc/profile 打开文本编辑器,在最后追加#set android environment 2. ...
- (笔记)常用Llinu命令(一)
Linux资源 鸟哥Linux:http://linux.vbird.org/linux_basic/ Linux命令大全:https://man.linuxde.net/ 目录切换 cd usr: ...
- 常用Linux命令笔记
任何脱离业务的架构都是耍流氓 只记录实际常用的Linux命令 常用Linux命令 查找安装路径: whereis nginx 查询nginx进程: ps aux|grep nginx 查看 CentO ...
- git学习笔记:常用命令总结
本文根据廖雪峰的博客,记录下自己的学习笔记.主要记录常用的命令,包括仓库初始化.添加文件.提交修改.新建分支.内容暂存.分支管理.标签管理等内容. git是分布式版本控制系统. 首先是安装,从官网下载 ...
- 学习笔记:oracle学习二:oracle11g数据库sql*plus命令之常用sqlplus命令、格式化查询结果
目录 1.常用sqlplus命令 1.1 HELP命令 1.2 describe命令 1.3 SPOOL命令 1.4 其他常用命令 1.4.1 define命令 1.4.2 show命令 1.4.3 ...
- Linux学习笔记:常用命令grep、iconv、cp、mv、rm
本篇记录一些近期常用的命令. 一.grep过滤 grep过滤 不包含某些字符串 cat test.txt | grep -v '.jpg' 过滤jpg结尾的图片 cat test.txt | grep ...
- CMake学习笔记三:cmake 常用指令
1 基本指令 1,ADD_DEFINITIONS 向 C/C++编译器添加-D 定义,比如: DD_DEFINITIONS(-DENABLE_DEBUG -DABC),参数之间用空格分割. 如果你的代 ...
- 嵌入式Linux应用开发完全手册读书笔记——常用的命令
嵌入式开发中常用的命令 grep命令 用法:grep [option] PATTERN [FILE...] 例如: 在内核目录下查找包含"request_irq"字样的文件 gre ...
- Docker 使用笔记-常用基础命令
常用基础命令 环境:Linux Ubuntu 1.查看docker信息 docker version | docker info 2.启动docker服务 sudo systemctl start d ...
- Nginx 笔记(二)nginx常用的命令和配置文件
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 1.nginx常用的命令 (1)启动命令 在/usr/local/nginx/sbin 目录下执行 ./ ...
随机推荐
- 微服务架构开发电商系统需要用Redis、ES和MQ吗?
如果不用什么很高大上的东西,就是有多个微服务就行这种技术架构会很难吗? 我看了一些视频,他们都用到了es.mq.redis的东西,我想不用这些东西,就简单的有多个服务,这样可行吗? 01 使用微服务你 ...
- 【Azure Developer】使用Microsoft Graph API 批量创建用户,先后遇见的三个错误及解决办法
问题描述 在先前的一篇博文中,介绍了如何使用Microsoft Graph API来创建Azure AD用户(博文参考:[Azure Developer]使用Microsoft Graph API 如 ...
- 如何解决 shell 脚本重复执行的问题
在开发过程中,经常会使用shell脚本去完成定时备份的任务,普遍的做法是通过系统的定时任务定时执行备份脚本 设想这样一种场景,本次备份时间到了,自动执行备份脚本,如果备份比较耗时的话,会一直持续到下一 ...
- RabbitMQ一些实用方法
https://blog.csdn.net/vbirdbest/article/details/78670550
- python双曲线拟合
待拟合函数 y = alpha * pow(x, beta) 输入: x数组,y数组 输出: alpha,beta,相关系数R2 from scipy.optimize import leastsq ...
- 技能Get·BOM头是什么?
阅文时长 | 0.26分钟 字数统计 | 472.8字符 主要内容 | 1.引言&背景 2.BOM头是什么? 3.如何创建或取消BOM头? 4.如何判断文件是否包含BOM头? 5.声明与参考资 ...
- [bug] JavaScript:Uncaught SyntaxError: missing ) after argument list
function拼写错误
- Linux下获取当前的目录,需执行以下命令: $(cd `dirname $0`;pwd)
Linux下获取当前的目录,需执行以下命令: $(cd `dirname $0`;pwd) 其中, dirname $0,取得当前执行的脚本文件的父目录 cd `dirname $0` ...
- 附: Python爬虫 数据库保存数据
原文 1.笔记 #-*- codeing = utf-8 -*- #@Time : 2020/7/15 22:49 #@Author : HUGBOY #@File : hello_sqlite3.p ...
- OS_FLAG_GRP_DEPLETED
178 * OS_FLAG_GRP_DEPLETED 系统没有剩余的空闲事件标志组,需要更改OS_CFG.H中 179 * 的事件标志组数目配置创建 标志组的时候返回这个错误 打印出错误代码后发现是1 ...