CMakeList汇总
cmake_minimum_required(VERSION 2.8.3)
PROJECT (HELLO) #工程名
set(CMAKE_BUILD_TYPE "Debug")
set(CMAKE_BUILD_TYPE "RelWithDebInfo")
SET( MAIN_LIST main.cpp ) #定义一个变量名
#SET(MAIN_LIST "${MAIN_LIST} -std=c++11")
MESSAGE(STATUS "This is BINARY dir " ${HELLO_BINARY_DIR})#显示信息
MESSAGE(STATUS "This is SOURCE dir "${HELLO_SOURCE_DIR})#显示信息
AUX_SOURCE_DIRECTORY(src DIR_SRCS) SET(PICAR_SERVER
${DIR_SRCS}
) ADD_EXECUTABLE(${PROJECT_NAME} ${PICAR_SERVER})
ADD_EXECUTABLE(hello ${MAIN_LIST} ) #hello 为编译后的目标文件名 ADD_EXECUTABLE(hello main.cpp) #hello 为编译后的目标文件名 ADD_SUBDIRECTORY ( source_dir [ binary_dir ] [ EXCLUDE_FROM_ALL ] )
#向当前工程添加存放源文件的子目录 并可以指定目标二进制存放的位置 EXCLUDE参数的含义是将这个
目录从编译过程中排除,比如example,可以就工程构建完成后,单独进来构建 INCLUDE_DIRECTORIES( [AFTER|BEFORE] [SYSTEM] dir1 dir2 ... )
#向当前工程添加多个指定的头文件搜索路径,路径之间用空格分割
include_directories(
${catkin_INCLUDE_DIRS}
${PROJECT_SOURCE_DIR}/src
${PROJECT_SOURCE_DIR}/sdk/include
${PROJECT_SOURCE_DIR}/sdk/src
) TARGET_LINK_LIBRARIES( target library1 library ... )
#添加共享库链接 可写成hello,也可写成libhello.so #使用了外部库,事先不知道头文件和链接库的位置
find_package(<name>) 会在模块路径中寻找name.cmake。
例:fing_package(BZip2)
if(BZIP2_FOUND)
include_directories( ${BZIP_INCLUDE_DIR} )
target_link_libraries( 工程名 ${BZIP2_LIBRARIES} )
endif(BZIP2_FOUND) find_library( libpaths libhello.so lib ) 找到自定义的库,不需要安装 libpaths为变量 libhello.so为要找的库, lib为路径 target_link_libraries( usehello ${libpaths} ) 将找到的库的变量链接到工程 make clean 可对构建结果进行清理 建立共享库
SET(LIBHELLO_SRC hello.c) ADD_LIBRARY(hello SHARED ${LIBHELLO_SRC}) ADD_LIBRARY( libname [ SHARED|STATIC|MODULE ] [EXCLUDE_FROM_ALL] source1 source2 ... )
#SHARED 动态库 STATIC静态库 MODULE不常用 INSTALL(TARGETS hello hello_static #TARGETS为二进制、动态库、静态库
LIBRARY DESTINATION lib #lib为相对位置,针对于DCMAKE_INSTALL_PREFIX=/usr 下
ARCHIVE DESTINATION lib)
#可以使用make install命令将生成的libhello.so libhello_static.a 安装到/usr/lib下。
其中ARCHIVE是静态库的关键字,LIBRARY是动态库的关键字 INSTALL(FILES hello.h DESTINATION include/hello) #FILES普通文件安装,
#可以将hello.h 安装到/usr/include/hello中 cmake -DCMAKE_INSTALL_PREFIX=/usr ..
CMakeList汇总的更多相关文章
- 常用 Gulp 插件汇总 —— 基于 Gulp 的前端集成解决方案(三)
前两篇文章讨论了 Gulp 的安装部署及基本概念,借助于 Gulp 强大的 插件生态 可以完成很多常见的和不常见的任务.本文主要汇总常用的 Gulp 插件及其基本使用,需要读者对 Gulp 有一个基本 ...
- 异常处理汇总 ~ 修正果带着你的Net飞奔吧!
经验库开源地址:https://github.com/dunitian/LoTDotNet 异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983 ...
- UWP开发必备:常用数据列表控件汇总比较
今天是想通过实例将UWP开发常用的数据列表做汇总比较,作为以后项目开发参考.UWP开发必备知识点总结请参照[UWP开发必备以及常用知识点总结]. 本次主要讨论以下控件: GridView:用于显示数据 ...
- Oracle手边常用70则脚本知识汇总
Oracle手边常用70则脚本知识汇总 作者:白宁超 时间:2016年3月4日13:58:36 摘要: 日常使用oracle数据库过程中,常用脚本命令莫不是用户和密码.表空间.多表联合.执行语句等常规 ...
- Oracle 数据库知识汇总篇
Oracle 数据库知识汇总篇(更新中..) 1.安装部署篇 2.管理维护篇 3.数据迁移篇 4.故障处理篇 5.性能调优篇 6.SQL PL/SQL篇 7.考试认证篇 8.原理体系篇 9.架构设计篇 ...
- Vertica 数据库知识汇总篇
Vertica 数据库知识汇总篇(更新中..) 1.Vertica 集群软件部署,各节点硬件性能测试 2.Vertica 创建数据库,创建业务用户测试 3.Vertica 数据库参数调整,资源池分配 ...
- 读书笔记汇总 - SQL必知必会(第4版)
本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...
- 关于DDD的学习资料汇总
DDD(Domain-Driven Design)领域驱动设计,第一次看到DDD是在学习ABP时,在其中的介绍中看到的.what,DDD是个什么鬼,我不是小白,是大白,没听过.于是乎,度娘查查查,找到 ...
- Oracle 列数据聚合方法汇总
网上流传众多列数据聚合方法,现将各方法整理汇总,以做备忘. wm_concat 该方法来自wmsys下的wm_concat函数,属于Oracle内部函数,返回值类型varchar2,最大字符数4000 ...
- LeetCode All in One 题目讲解汇总(持续更新中...)
终于将LeetCode的免费题刷完了,真是漫长的第一遍啊,估计很多题都忘的差不多了,这次开个题目汇总贴,并附上每道题目的解题连接,方便之后查阅吧~ 477 Total Hamming Distance ...
随机推荐
- .net6&7中如何优雅且高性能的使用Json序列化
.net中的SourceGenerator让开发者编可以写分析器,在项目代码编译时,分析器分析项目既有的静态代码,允许添加源代码到GeneratorExecutionContext中,一同与既有的代码 ...
- python字符串常用方法介绍,基于python3.10
python字符串常用方法-目录: 1.strip().lstrip().rstrip()2.removeprefix().removesuffix()3.replace()4.split().rsp ...
- Rust学习之旅(读书笔记):枚举 (Enum)
Rust学习之旅(读书笔记):枚举 (Enum) C 语言的枚举类型很弱,不如后来的语言,也不如之前的语言.在 C 语言里面枚举量就是一个名字,更方便的定义常量.今天读了<The Rust Pr ...
- 【Redis场景1】用户登录注册
细节回顾: 关于cookie和session不熟悉的朋友: 建议阅读该博客:https://www.cnblogs.com/ityouknow/p/10856177.html 执行流程: 在单体模式下 ...
- python解释器下载与基本使用
python介绍与解释器下载基本使用 1.python发展方向 web方向.自动化运维.自动化测试.自动化办公.网络爬虫.金融量化.人工智能.机器学习.数据分析 2.python解释器 历史 ...
- vue 解决循环引用组件/动态组件/组件未注册报错
使用动态组件报错 Unknown custom element: - did you register the component correctly? For recursive component ...
- 如何让Java编译器帮你写代码
作者:京东零售 刘世杰 导读 本文结合京东监控埋点场景,对解决样板代码的技术选型方案进行分析,给出最终解决方案后,结合理论和实践进一步展开.通过关注文中的技术分析过程和技术场景,读者可收获一种样板代码 ...
- 创建进程的多种方式、多进程实现TCP并发等知识点
创建进程的多种方式.多进程实现TCP并发等知识点 一.同步与异步 1.提交完成任务之后原地等待任务的返回结果,期间不做任何事 2.提交完任务之后不愿原地等待任务的返回结果,直接去做其他事情,有结果自动 ...
- 基于Docker安装的Stable Diffusion使用CPU进行AI绘画
基于Docker安装的Stable Diffusion使用CPU进行AI绘画 由于博主的电脑是为了敲代码考虑买的,所以专门买的高U低显,i9配核显,用Stable Diffusion进行AI绘画的话倒 ...
- 模拟BS服务器分析-模拟BS服务器代码实现
模拟BS服务器分析 模拟网站服务器,使用浏览器访问自己编写的服务端程序,查看网页效果. 服务器要给客户端回写一个信息,回写一个html页面(文件)我们需要读取index.html文件,就必须的知道这个 ...