博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
01-cmake语法-基本
阅读量:4620 次
发布时间:2019-06-09

本文共 1714 字,大约阅读时间需要 5 分钟。

本系列随笔将结合 OpenCV 的 CMakeLists.txt 来讲解 cmake 的语法。

 

这一节,主要介绍一下cmake语法的基本语法。

 

cmake语法的基本语法

# 执行cmake . # 表示在当前目录下执行 cmakecmake .. # 表示在前一级目录下执行 cmakemake # 在当前目录下执行 make# 语法#1 设置 cmake 版本需求cmake_minimum_required(VERSION 2.8)#2 设置工程名project( 工程名 )#3 生成可执行文件add_executable( 可执行文件名 cpp文件 )#4 生成静态库add_library( helloSLAM helloSLAM.cpp )#5 生成共享库add_library( helloSLAMShared SHARED helloSLAM.cpp )#6 链接可执行文件,xx.otarget_link_libraries(helloSLAM /home/chan/projects/SLAM/build_lib/libhelloSLAM.a)#7 设置Debug模式set( CMAKE_BUILD_TYPE "Debug" )

  

给出例子:

1. 文件名“helloSLAM.cpp”,编译的可执行文件名为“helloSLAM”,不指定,默认为“a”。

Linux 下可执行文件没有后缀名。

# cmake version requirmentcmake_minimum_required(VERSION 2.8)# project name.project( helloSLAM )# generate exectuable file.add_executable( helloSLAM helloSLAM.cpp )

  

2. 文件名“helloSLAM.cpp”,编译生成 静态库 ,后缀名“.a”

# cmake version requirmentcmake_minimum_required( VERSION 2.8 )# project name.project( helloSLAM )# generate library file.add_library( helloSLAM libHelloSLAM.cpp )

  

3. 文件名“helloSLAM.cpp”,编译生成 分享库(不叫动态库) ,后缀名“.a”

# cmake version requirmentcmake_minimum_required( VERSION 2.8 )# project name.project( helloSLAM )# generate library file.add_library( helloSLAMShared SHARED libHelloSLAM.cpp )

  

4. 加载静态库/分享库,生成可执行文件。

# cmake version requirmentcmake_minimum_required(VERSION 2.8)# project name.project( helloSLAM )# generate exectuable file.add_executable( helloSLAM helloSLAM.cpp )target_link_libraries(helloSLAM /home/chan/projects/SLAM/build_lib/libhelloSLAM.a)

  

 

本节参考来自高博《视觉SLAM14讲》。

部分操作,可参考我的github:

https://github.com/Chenhui2018/SLAM/blob/master/notes/SLAM%E7%AC%94%E8%AE%B01%EF%BC%9A%E6%96%B0%E5%BB%BA%E5%B7%A5%E7%A8%8B%E5%92%8Ccmake.md

转载于:https://www.cnblogs.com/alexYuin/p/8874304.html

你可能感兴趣的文章
hdu 5984
查看>>
解决:Incorrect line ending: found carriage return (\r) without corresponding newline (\n)
查看>>
深入学习微框架:Spring Boot
查看>>
Coprimes - SGU 102(求互质数,水)
查看>>
CSS布局(二) 盒子模型属性
查看>>
jQuery 获取select选中的option
查看>>
更新被拒绝,因为您当前分支的最新提交落后于其对应的远程分支
查看>>
LeetCode 112. Path Sum (二叉树路径之和)
查看>>
mysql数据恢复
查看>>
java list
查看>>
算法练习2---斐波那契数列java版
查看>>
用VISIO2013绘制E-R图
查看>>
每日站立会议03
查看>>
软件工程第一次作业
查看>>
初步了解HTML
查看>>
九度OJ 1165:字符串匹配 (模式匹配)
查看>>
Swift Storyboard找不到类文件
查看>>
Hibernate-延迟加载和立即加载
查看>>
Java中数据类型的转换
查看>>
闲扯一篇 聊聊与博客园代码改变世界的那些事
查看>>