c++/cmake/cmakelists/cmakelists子目录的添加

2023-05-16

cmake_minimum_required(VERSION 3.10)

project(learning_to_create_project)

set(CMAKE_CXX_STANDARD 11)
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)

find_package(OpenCV REQUIRED)

include_directories(
        ${PROJECT_SOURCE_DIR}/include/)

add_library(${PROJECT_NAME} SHARED
        src/China.cpp
        src/i.cpp
        src/love.cpp
)

add_executable(i_love_China example/i_love_China.cpp)
target_link_libraries(i_love_China
        ${OpenCV_LIBS}
        ${PROJECT_NAME}

cmake_minimum_required(VERSION 2.8):cmake版本要求;

set(CMAKE_CXX_STANDARD 11):设置C++标准为C++11;

set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib):设置库文件输出到代码源路径下的lib文件夹中;

find_package:找到OpenCV的库,REQUIRED表示一定要找到这个库,找不到这个库,编译就直接结束,不再往下进行了;(这里只是示范写法,实际上没有用到OpenCV);

include_directories:用于包含头文件,需要指明头文件所在的目录,如果前面使用了find_package(x)去查找到了某一个库,那么就可以使用这个命令去包含这个库的头文件,例如:include_directories(${x_INCLUDE_DIRS}

target_link_libraries(i_love_China ${OpenCV_LIBS} ${PROJECT_NAME}):用于链接库文件。根据调库原则,一是要有库的头文件,二是要有库生成的共享或者静态链接库,include_directories命令已经包含了头文件,所以需要用target_link_libraries包含库文件,前一个参数表示的是可执行文件的名称,这个文件执行需要链接那些库,就全写在后面。

add_library:编译产生链接库,我这里产生的是动态链接库。如果你将自己的代码编译产生了库文件,那个你把库文件和头文件给别人,别人就可以调用你的函数执行相关计算工作了。

复杂的结构cmakelists怎么用,用空再整理一下?

  ParentDir 
--src 
----source.cpp 
----source.h 
----entities_dir 
------entity.cpp 
------entity.h 
------CMakeLists.txt 
----CMakeLists.txt 
--CMakeLists.txt 
--main.cpp 

 

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

c++/cmake/cmakelists/cmakelists子目录的添加 的相关文章

  • RANSAC算法理解

    RANSAC是 RANdom SAmple Consensus xff08 随机抽样一致 xff09 的缩写 它可以从一组包含 局外点 的观测数据集中 xff0c 通过迭代方式估计数学模型的参数 它是一种不确定的算法 它有一定的概率得出一个
  • C++ 环形缓冲区(队列)简单实现

    1 说明 在实际工作中 xff0c 如果数据流量过大 xff0c 可以先把数据接收到数据缓冲区中 xff0c 处理之后再取出 我们定义的包协议可以采用定长包 xff0c 可以采用不定长度的包 xff0c 环形缓冲区都能处理 2 使用场景 2
  • Visual Studio Code (vscode) 配置 C / C++ 环境

    Visual Studio Code vscode 配置 C C 43 43 环境 步平凡 博客园 在电脑安装软件管控严格的情况下 xff0c 想装VS装不了 xff0c 就装轻量版的VSCode了 以上写得很好 xff0c 照做即可 本人
  • c++实现basename

    window API居然不包含Linux中很好用的basename函数 xff0c 实现了一下 xff0c 留个记录 xff0c 省得日后重复写 std string m basename std string fullPath size
  • tortoiseGit教程

    0 前言 TortoiseGit其实是一款开源的git的版本控制系统 xff0c 也叫海龟git TortoiseGit提供了人性化的图形化界面 xff0c 不用像Git一样输入许多语句 xff0c 像git init git add gi
  • 用STL库创建线程

    测试了3种方式 xff1a 1 xff1a 子线程不带返回值 2 xff1a 子线程带返回值 3 xff1a 子线程带引用类型参数 使用join方式 xff0c 让父线程等待子线程运行结束 TestTemp cpp 定义控制台应用程序的入口
  • 4.5树的存储

    双亲表示法 xff0c 孩子表示法 xff0c 孩子兄弟表示法 1 双亲表示法 查找双亲简单 空数据导致遍历更慢 xff0c 查指定节点的孩子只能遍历 span class token keyword typedef span ElemTy
  • Windows下MySQL数据库的安装、配置及C++使用案例

    1 安装及配置 Windows判断本地是否安装mysql以及mysql安装过程 企鹅要去银河思考人生 xff01 xff01 xff01 的博客 CSDN博客 windows查看是否安装mysql 注意按照文中提示 xff0c 配置好环境变
  • C++获取系统毫秒级时间(自1970年1月1日至今的毫秒数)

    跟系统时间相关的 ifdef WIN32 include lt time h gt include lt windows h gt else include lt sys time h gt endif unsigned long long
  • Window 10下SQL Server的安装配置以及C++使用案例

    1 SQL Server2008的安装与配置 参照下面这篇博客实现即可 里面提供了安装包下载方式 xff08 百度网盘有点慢 xff09 安装及配置步骤 SQLServer安装教程 xff08 史上最详细版本 xff09 杨林伟的博客 CS
  • 基于OpenCV实现的多角度、多目标模板匹配项目实战案例

    1 说明 本案例采用NCC的匹配 金字塔 为了加速 思想 基于OpenCV实现的多角度 多目标模板匹配 不支持尺度不变 若研究旋转 尺度不变性的匹配 请参考本人的OpenCV专栏内的 nbsp OpenCV实现多角度多尺度模板匹配 基于形状
  • 程序日志模块的两种模式

    程序员都知道程序的运行日志在不少时候都非常有用 xff0c 利于排查 理清逻辑 一般而言 xff0c 日志都按天生成 xff0c 并且具备自动清理多少天以前的旧日志 xff0c 避免无限增长占用磁盘 下图展示了2种日志模式 模式一 1 xf
  • C++开发面试常考

    C 43 43 后台开发面试常考 pudn com
  • 如何在微软官网上下载旧版本的visual studio

    想在微软官网下载旧版本的VS 太长不想看的可以直接戳网址进入最终的界面 xff1a Visual Studio 较旧的下载 2019 2017 2015 和以前的版本想从官网首页一步一步进入到最终下载界面的可以看下面详细步骤 xff1a 1
  • 基于OpenCV实现的RANSAC随机抽样一致性直线拟合

    概要 本文介绍基于ransac随机抽样一致性随机抽样一致性的直线拟合方法 涵盖一下的内容 ransac的算法思想 ransac的算法步骤 如何调整ransac算法迭代的次数 基于opencv编码实现 ransac算法流程 RANSACRAN
  • 基于OpenCV(C++)实现的RANSAC随机抽样一致性的曲线拟合(二次)

    nbsp 0 前言 nbsp nbsp 前不久整理了RANSAC直线拟合的文章 基于OpenCV实现的RANSAC随机抽样一致性直线拟合 thequitesunshine007的博客 CSDN博客 这篇文章与其类似 只是从拟合直线变为拟合曲
  • 最小二乘least-squares拟合曲线(三次或多次)

    1 说明 基于最小least squares去拟合出多次曲线 考虑到了所有的样本点 因此这种方法对噪声敏感 尤其是遇到较为突兀明显的噪声时 曲线的形状易受干扰 2 代码 代码细节仔细读基本都能读懂 或者查一下也不是什么大问题 include
  • 4.6树和森林的遍历

    一 树的遍历 1 先根遍历 对应二叉树先序遍历 span class token keyword void span span class token function PreOrder span span class token punc
  • 扩展欧几里得算法(简单易懂,详细分析)

    扩展欧几里得算法 扩展欧几里得算法证明 43 应用 61 61 欧几里得算法 61 61 61 61 扩展欧几里得算法 61 61 应用1 xff1a 求一元二次线性方程的整数解应用二 xff1a 求ax 61 c mod p 应用三 xf
  • 佩尔方程(超详细推导+例题讲解) 每日一遍,算法再见!

    这里写目录标题 佩尔方程第一类佩尔方程第一类佩尔方程例题讲解 第二类佩尔方程 佩尔方程 第一类佩尔方程 定义 xff1a 形如 x 2 d

随机推荐

  • FFT(傅里叶快速变换,详细讲解+推导) 每日一遍,算法再见!

    FFT详细推导 FFT 傅里叶快速变换 一 前置知识1 复数和单位根2 单位根的三个引理3 多项式 二 FFT 快速傅里叶变换推导 三 IFFT四 FFT求解多项式乘积模板代码1 递归版2 非递归版 这个更快 xff0c 省去了递归时间 五
  • 背包问题----分组背包(超详细讲解)

    树形dp 分组背包 43 依赖背包 分组背包1 定义2 讲解3 练习题 依赖背包1 定义2 讲解3 练习题 分组背包 1 定义 分组背包 xff0c 通俗的讲就是 xff0c 给你N组物品 xff0c 然后每一组你至多选择一个物品 也可以不
  • 树状数组(详细分析+应用),看不懂打死我!

    树状数组介绍 在学习一个算法之前一定要清楚它能干嘛 xff0c 能解决什么样的问题 xff0c 对你解题是否有帮助 xff0c 然后才去学习它 那么接下来看如下几个问题 什么是树状数组 顾名思义就是一个结构为树形结构的数组 xff0c 于二
  • 更新Win10版本后,wifi图标不见了,并且连接不到wifi和宽带,以及点击网络和Internet闪退的情况

    问题描述 你们是不是遇到过这样的问题 xff0c 更新系统前还好好的 xff0c 更新之后wifi图标不见了 于是你尝试点击最右边的图标打开wifi xff0c 如下图所示 但是你发现没有任何可连接wifi xff0c 就下面这样 xff0
  • Netty框架之Selector使用详解

    谈到Selector的具体使用 xff0c 那么就要结合BIO NIO的知识讲解 xff0c Selector使用在非阻塞模式NIO场景下 xff0c 学习NIO之前先要了解BIO原理 xff0c 下面我们一步步讲解 一 BIO Block
  • SpringBoot系列---application.yml配置文件

    1 yml配置文件格式 span class token comment 对象 span span class token key atrule person span span class token punctuation span s
  • Spring系列---SpringBoot配置-profiles

    1 profiles的作用 2 使用profiles span class token punctuation span span class token comment 开发环境 span span class token key atr
  • SpringBoot系列---SpringBoot配置文件加载顺序

    1 内部文件配置加载顺序 resource目录下打包之后就是classpath路径 xff0c 所以classpath路径下也就是resource目录下的配置文件 2 外部配置文件加载顺序我们再使用springboot开发程序的时候 xff
  • 4.7树的使用(并查集、哈夫曼树的构建)

    一 并查集 优化后 时间复杂度 xff1a 树高 O log2n 查找 xff1a O log2n 1 并查集初始化 span class token macro property span class token directive ha
  • 游标v_cur的%notfound

    当游标的值为空的时候 xff0c 处理无效员工的id时就会出现错误 比如 xff1a 创建一个程序检索某个员工的工龄 a 创建一个函数GET SERVICE YRS xff0c 检索某个员工总的工龄 xff1b 此函数应该接受员工ID作为输
  • 两个大数(包括负数)相加

    分析 xff1a 当这两个大数为正数时 xff0c 我们可以将字符转化为数字相加 xff0c 再加进位talg xff0c 有进位为1 xff0c 否则为0 xff1b 两个为负数则与正数相似 xff0c 为一正一负时 xff0c 我们可以
  • WRF模式运行的流程以及简单错误的避免

    前提安装好 WPS 43 WRF 43 WRFDomainWizard等组件 一 xff0c WPS 1 xff0c geogrid exe 准备静态数据 地理数据 2 xff0c ungrib exe 解压强迫场资料 气象数据 3 xff
  • 两台计算机之间的直连

    1 xff0c 直连线的要求 xff0c 需要交叉线 2 xff0c 在网络里打开适配器选项 xff0c 右击以太网 xff0c 打开属性 xff0c 双击IP4 xff0c 如图所示 IP地址设置如上图 3 xff0c 另一台计算机的设置
  • MP3转码PCM

    支持aac和mp3转码 xff0c 主要是dst nb sample的计算 xff0c aac大致为1024 xff0c MP3为1152 xff0c static int dst nb samples 61 0 define SWR in
  • RISC-V MCU 导盲手套

    RISC V MCU 导盲手套 关于本文队伍名称第一部分 设计概述1 1 设计目的1 2 应用领域1 3 主要技术特点1 4 关键性能指标1 5 主要创新点 第二部分 系统组成及功能说明2 1 整体介绍2 2 各模块介绍 第三部分 完成情况
  • 告别VMWARE!开源,免费,高效率,跨平台的

    与所有Linux爱好者一样 xff0c 对Windows的感情都是虽然不喜欢 xff0c 但是有些时候还真离不开这个玩意 那怎么办呢 xff1f 虚拟机 xff01 最早接触的虚拟机是virtualpc xff0c 这个软件自从被微软收购之
  • 保护机制

    一 SSP Stack Smashing Protection SSP属于编译器层面的防护 具体实现 1 xff0c 在栈中 xff0c ebp与变量之间插入随机值canary xff0c 用于监视是否栈溢出 xff1b 2 xff0c 在
  • Linux系统溢出漏洞学习

    系统环境 xff1a Linux 3 0 0 12 generic athlon DISTRIB DESCRIPTION 61 34 Ubuntu 11 10 34 gcc Ubuntu Linaro 4 6 3 1ubuntu5 4 6
  • db dw dd 与equ的区别

    此前在写汇编的过程中 xff0c 一直不理解两者间的区别 xff0c 例如 xff1a address1 dw 1000h address2 equ 2000h mov ax address1 mov bx address2 db dw d
  • c++/cmake/cmakelists/cmakelists子目录的添加

    cmake minimum required VERSION 3 10 project learning to create project set CMAKE CXX STANDARD 11 set LIBRARY OUTPUT PATH