CMakeLists.txt中相关指令和含义

2023-05-16

语法格式:指令(参数1 参数2 …)
参数使用括号括起来
参数之间使用空格或分号分开
指令大小写无关,参数和变量大小写有影响

重要指令

1.cmake_minimum_required:指定Cmake的最小版本要求;

# CMake最小版本要求为2.8.3
cmake_minimum_required(VERSION 2.8.3)

2.project:定义工程名称,并且可以指定支持的语言;

# 指定工程名称为***
project(***)

3.set:显式的定义变量;

# 定义SRC变量,其值为sayhello.cpp hello.cpp
set(SRC sayhello.cpp hello.cpp)

4.include_directories:向工程添加多个特定的头文件搜索路径;

#将 /usr/bin/lib  与 ./lib 添加到头文件搜索路径
include_directories(/usr/bin/lib ./lib)

5.link_directories:向工程添加多个特定的库文件搜索路径;

# 将/usr/lib/mylibfolder 和 ./lib 添加到库文件搜索路径
link_directories(/usr/lib/mylibfolder ./lib)

6.add_library:生成库文件;

# 通过变量 SRC 生成 lib hello.so 共享库
add_library(hello SHARED ${SRC})

7.add_complie_options:添加编译参数;

# 添加编译参数 -Wall -std=c++11 -O2
add_compile_options(-Wall -std=c++11 -O2)

8.add_executable:生成可执行文件;

# 编译main.cpp生成可执行文件main
add_executable(main main.cpp)

9.target_link_libraries:为targget添加需要链接的共享库;

# 将hello动态库文件链接到可执行文件main
target_link_libraries(main hello)

10.add_subdirectory:向当前工程添加存放源文件的子目录,并可以指定中间二进制和目标二进制的存放位置;

# 添加src子目录,src中需有一个CMakeLists.txt
add_subdirectory(src)

11.aux_source_directory:发现一个目录下所有的源代码文件并将列表存储在一个变量中,用于临时自动构建源文件列表。

# 定义SRC变量,其值为当前目录下所有的源代码文件
aux_source_directory(. SRC)
# 编译SRC变量所代表的源代码文件,生成main可执行文件
add_executable(main ${SRC})

CMake常用变量

1.CMAKE_C_FLAGS gcc编译选项

CMAKE_CXX_FLAGS g++编译选项

# 在CMAKE_CXX_FLAGS编译选项后追加-std=c++11
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

2.CMAKE_DUILD_TYPE 编译类型,分Debug和Release两种

# 设定编译类型为debug,调试时需要选择debug
set(CMAKE_BUILD_TYPE Debug)
# 设定编译类型为release,发布时需要选择release
set(CMAKE_BUILD_TYPE Release)

3.CMAKE_BINARY_DIRPROJECT_BINARY_DIR_BINARY_DIR
这三个变量指代的内容是一致的。

CMake编译工程

在当前目录下,创建build文件夹:mkdir build,进入到build目录下:cd build,执行cmake ..命令,执行make命令,生成目标。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CMakeLists.txt中相关指令和含义 的相关文章

  • ros下package中CMakelists的编写

    目录 一 package自动生成的Cmakelists1 指定cmake版本2 项目名字3 寻找构建所需依赖包4 启用python模块依赖5 Message Service Action 生成文件6 启动 message services
  • ros里Catkin的CMakelists/package.xml

    Catkin是基于CMake的编译构建系统 xff0c 具有以下特点 xff1a Catkin沿用了包管理的传统像 find package 基础结构 pkg config扩展了CMake xff0c 例如 软件包编译后无需安装就可使用 自
  • ROS Catkin 教程之 CMakeLists.txt

    1 概览 CMakeLists txt 是用 CMake 构建系统构建 ROS 程序包的输入文件 任何兼容 CMake 的包都包含一个或多个 CMakeLists txt 文件 xff0c 用以描述怎样构建和安装代码 catkin 项目采用
  • CMakeLists 理解

    CMakeLists 理解 最近发现其实之前对CMakeLists 理解不是很全面 xff0c 零零散散在网上看到的一些教程 xff0c 其实都是为了解决某个命令的问题 xff0c 要不然就是对一些命令的翻译理解 xff0c 实际上是很劝退
  • python open按行读取txt 去掉\n

    加 strip 39 n 39
  • python 读取一个文件夹下的所jpg文件保存到txt中

    最近需要使用统计一个目录下的所有文件 xff0c 使用python比较方便 xff0c 就整理了一下代码 1 import os 2 3 def gci filepath 4 files 61 os listdir filepath 5 f
  • ajax authorization,jquery ajax 添加自定义请求头 - Authorization 字段.txt

    jquery ajax 添加自定义请求头 Authorization 字段 txt 参考 xff1a https www cnblogs com yanggb p 12039665 html https www w3school com c
  • cmake & CMakeLists.txt

    文章目录 前言先从体验开始1 一个最简单的例子 xff1a 2 例子升级 xff0c 将hello c生成为一个库 xff1a 3 例子升级 xff0c 将源代码和库分开放 xff1a 4 让可执行文件在 bin 目录 xff0c 库文件在
  • CMakeLists.txt中第三方库编写思考

    编写ROS时经常需要自己构建第三方库或者引用别人的第三方库 xff0c 对于第三方库的调用主要有以下两种方式 xff1a 1 引用现成的第三方库 xff1a find package PCL 1 7 REQUIRED xff1a 添加依赖
  • Python:把列表内容按行数写入txt

    事情的起因是我需要把一个元素全为数字的列表按固定列数写入txt文件 xff0c 也就是每行几个元素 xff0c 用逗号隔开 看了一些网上的分享觉得都不太合适 xff0c 于是自己想了一个办法 xff0c 一行代码解决 xff0c 废话少说
  • qt程序的CMakeLists.txt配置转为平台的qt的.pro项目工程文件

    参考这个 跨平台qt程序的CMakeLists txt配置转为平台的qt的 pro项目工程文件 谁能懂我2011的博客 CSDN博客 一些比较正规的跨平台qt项目没有 pro项目文件只有CMakeLists txt文件 xff0c 如果要编
  • CMakeLists.txt与Makefile 的区别

    我平时一般是在windows使用VS编程 xff0c 但是偶尔在网上查资料的时候也会下载一些别人的代码 xff0c 其中就经常对CMakeLists txt和Makefile文件产生疑惑 xff0c 下面我来分析一下这两个经常使用的地方 C
  • CMakeLists.txt中FIND_PACKAGE()是如何工作的?

    官方文档 xff1a https cmake org cmake help latest command find package html FIND PACKAGE lt PackageName gt 如何查找头文件和库文件路径 xff1
  • ROS2 + Qt5 cmake的CMakeLists.txt文件配置

    ROS2 QT实现学习笔记 1 1 功能包的创建和编译 ROS2 Foxy 43 Qt5 on Linux Platform 按上面两个文章配置后的目录结构 build CMakeLists txt include mainwindow h
  • python 读取txt出现\xef\xbb\xbf…的问题

    用python读取txt文件 xff0c 文件的内容是一列数如下 xff1a 1883 1886 1900 1900 1897 1897 1897 1897 1906 1917 1910 1910 但是读取的时候第一个元素为 xef xbb
  • NDK--CMakeLists配置第三方so库

    当我们创建一个NDK工程时 xff0c 会自动创建一个CMakeLists txt的文件 xff0c 在AS中c 43 43 的编译器是使用LLVM xff0c 规则为cmake xff0c 今天来学习下cmake的基本套路 首先 xff0
  • Ubuntu下使用CMakeLists.txt管理C/C++代码

    Ubuntu下使用CMakeLists txt管理C C 43 43 代码 一 CMakeLists txt入门知识1 CMakeLists txt的编译方法2 CMakeLists txt的文件内容3 编译的C文件 二 CMakeList
  • CMake与CMakeLists是干什么的?

    写在最前面 xff1a 所有的博文都是为了若干年月以后当我再次翻看可以快速回想起之前的零星知识 学海无涯 xff0c 在看这篇文章的未来的你 xff0c 加油吧 xff01 因为之前看到有些软件中使用了CMake xff0c 不太理解为什么
  • Windows从命令行创建文本文件的两种方式

    第一种方式 copy con 文件名 然后可以输入文件内容 完成后打Ctrl Z退出 输入的内容被保存为一个文件 第二种 如下 echo gt 文件名 创建一个空的文件 当然你可以创建任何后缀名的文本类文件 创建一个SQL文件也是没问题的
  • [Python进阶] Python处理txt文件:open

    7 1 Python处理txt文件 open 在Python中 通过open函数可以打开一个文件 创建一个file对象 然后对该对象进行读写 函数语法 open name mode buffering 参数说明 name 文件名 mode

随机推荐

  • 【Mysql第十二期 视图】

    文章目录 1 常见的数据库对象2 视图概述2 1 为什么使用视图 xff1f 2 2 视图的理解 3 大白话理解3 1 创建单表视图3 2 创建多表联合视图 4 查看视图5 更新视图的数据5 1 一般情况 6 修改 删除视图6 1 修改视图
  • 【presto sql】presto sql 如何通过 计算当前日期(年月日,时分秒) 来计算当前是星期几?

    文章目录 原因解析常见的日期处理方式拓展 原因 presto没有直接的日期转星期几的方式 xff0c 但是可以通过函数mod xff0c date diff多种函数进行求模转换成我们想要的星期几 span class token keywo
  • 【presto】presto如何对字段换行处理?chr(10)

    文章目录 问题描述问题分析什么是ASCII码presto sql逻辑 问题描述 需要对当前日期格式如 xff1a 2023 02 23 当遇到 的时候进行换行处理 其他的文本描述字段同理 问题分析 通过查找presto的函数 xff0c 换
  • Qt扫盲-QMenu理论总结

    QMenu理论总结 一 概述二 常用操作1 添加Action2 信号槽3 可撕下菜单4 展示菜单 一 概述 QMenu其实就是菜单控件 xff0c 菜单控件本质上就是一个选择项目 它可以是菜单栏中的下拉菜单 xff0c 也可以是独立的上下文
  • c++: internal compiler error: Segmentation fault (program cc1plus) 解决

    在ubuntu中编译很多库 xff0c 尤其是很大的一些中间件 xff0c 常常会c 43 43 internal compiler error Segmentation fault program cc1plus 这个错误 xff0c 看
  • Windows 远程桌面连接 Jetson Nx (Linux)Ubuntu 18.04

    一 Windows打开远程桌面工具 采取Windows自带远程桌面工具 xff0c 使用win 43 r输入打开mstsc 输入目标ip xff0c 以及用户名 xff08 在显示选项中打开输入用户名 xff09 二 Linux配置 安装x
  • Android studio更换阿里源

    对特定项目生效 xff0c 在项目中的build gradle修改内容 buildscript span class token punctuation span repositories span class token punctuat
  • docker 服务与调用

    docker file ROM tensorflow1 span class token punctuation span 14 python3 span class token punctuation span 5 20210111 sp
  • CTC loss原理详解大全

    ctc本质是损失函数 xff0c 在我的学习过程中浏览了一些博客 xff0c 下面整理了一些写的较好 较详细的 xff1a 1 过程详细 xff0c 全英文 2 博主参照原文讲解的 3 有伪代码 xff0c 帮助理解 4 中文解释 xff0
  • Python 对象、类、实例的联系与区别

    Python 中的对象 类 实例 本文讲述Python 中对象 类 实例的联系与区别 来源 xff1a 笨办法学 Python xff08 Learn Python The Hard Way xff09 作者 xff1a Zed Shaw
  • linux安装tailf 命令

    1 复制如下代码到一个新建的tailf c文件里 span class token comment tailf c tail a log file and then follow it Created Tue Jan 9 15 49 21
  • DBNet学习笔记

    1 网络结构 xff1a 1 网络流程 输入一张图片 xff0c 经过卷积操作 gt 1 2 gt 1 4 gt 1 8 gt 1 16 gt 1 32进行特征的提取 xff0c 然后进行上采样操作 xff0c 上采样的过程是把1 32的特
  • ubuntu18.04 安装PCL1.8.1

    ubuntu18 04 安装PCL1 8 1 注意版本匹配 xff1a PCL1 8 1 43 VTK7 1 1 43 QT5 14 2 1 PCL github 地址 xff1a https github com PointCloudLi
  • ubuntu 18.04 docker 安装

    docker 官网 xff1a https docs docker com engine install ubuntu xff08 1 xff09 按照官网安装教程 xff1a 我选择的是Install from a package安装方法
  • C++函数返回多个值:结构体、tuple

    C 43 43 函数一般可以返回一个值 xff0c 但是在使用中常常需要一个函数返回多个值 xff0c 因此可以使用结构体或tuple来进行实现 注意看代码里的注释 xff01 xff01 xff01 1 使用结构体返回多个值 实现步骤 x
  • 【GStreamer 】1-扫盲介绍

    从历史的角度来看 xff0c Linux 在多媒体方面已经远远落后于其它的操作系统 微软的Windows和苹果的MacOS它们对多媒体设备 多媒体创作 播放和实时处理等方面已经有了很好的支持 另一方面 xff0c Linux对多媒体应用的综
  • C++判断文件是否存在

    span class token macro property span class token directive hash span span class token directive keyword include span spa
  • PCL编译完成后找不到库

    使用执行命令L g 43 43 std 61 c 43 43 14 I usr local include pcl 1 8 I usr local include eigen3 main cpp o test111 其中 std 61 c
  • docker安装及使用,常用命令总结

    1 安装 参考官方教程 xff1a https docs docker com engine install ubuntu 有三种安装方法 xff1a Install using the repository Install from a
  • CMakeLists.txt中相关指令和含义

    语法格式 xff1a 指令 xff08 参数1 参数2 xff09 参数使用括号括起来 参数之间使用空格或分号分开 指令大小写无关 xff0c 参数和变量大小写有影响 重要指令 1 cmake minimum required xff1a