如何编写CMakeLists.txt,并且使用pkg-config

2023-05-16

这里记录一下如何编写CMakeLists.txt

本篇blog记录如何在CMakeLists.txt中使用pkg-config

首先确定cmake版本

cmake_minimum_required(VERSION 3.16)

项目名称

project(Axis)

使用pkg-config,REQUIRED表示必须要这个包

find_package(PkgConfig REQUIRED)

使用pkg-config找到包

pkg_search_module(GST REQUIRED gstreamer-1.0)
pkg_search_module(OPENCV REQUIRED opencv4)
pkg_search_module(GSTAPP REQUIRED gstreamer-app-1.0)
pkg_search_module(GST REQUIRED glib-2.0)
pkg_search_module(GST REQUIRED gobject-2.0)

!注意

  • 如果没有.pc文件,自己参照别的.pc文件创建,或者直接在target_link_libraries 和 target_include_directories定义
  • 如果.pc文件路径不在pkg-config搜寻路径下,例如我的opencv4.pc在/usr/local/opencv4/lib/pkgconfig目录下(可以使用sudo find / -name "opencv4.pc"来找到目录),可以在~/.bashrc中添加:export PKG_CONFIG_PATH=/usr/local/opencv4/lib/pkgconfig
  • pkg_search_module内部两个参数,第一个是后面包的代号,注意如果.pc文件在不同路径下的话需要使用不同的代号

添加头文件目录

include_directories(${GST_INCLUDE_DIRS} ${OPENCV_INCLUDE_DIRS} ${GSTAPP_INCLUDE_DIRS})

如果lib文件没有装在正常目录下,使用如下代码

LINK_DIRECTORIES(/usr/local/opencv4/lib)

编译文件,如果是生成库的话使用add_libraries

add_executable(saidiAxis saidiAxis.cpp)

链接库文件

target_link_libraries(saidiAxis ${GST_LIBRARIES} ${OPENCV_LIBRARIES} ${GSTAPP_LIBRARIES})
target_include_directories(saidiAxis PRIVATE ${GST_INCLUDE_DIRS} ${OPENCV_INCLUDE_DIRS} ${GSTAPP_INCLUDE_DIRS})

消息提示

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

如何编写CMakeLists.txt,并且使用pkg-config 的相关文章

  • vscode常用插件

    vscode常用插件 1 Markdown All In One 在所有拓展插件中 xff0c 这个插件基础功能最全 xff0c 快捷键多 xff0c 方便使用 2 Markdown Toc 这个插件是用来生成目录 xff0c 这个插件我用
  • typescript中使用字典Dictionary

    key为string value为number var map key string number 61 34 t 34 3 34 o 34 5 34 g 34 10 for let k in map egret log map k
  • Qt Design Studio社区版安装与使用

    Qt Design Studio社区版免费下载 由于登录官网不能下载 xff0c 找到镜像网站进行下载 xff1a 基于msvc 2019 64位 xff1a http iso mirrors ustc edu cn qtproject o
  • vscode用conda配置Python虚拟环境

    1 到官网下载Anaconda2 下载vscode中Python插件3 以管理员身份运行vscode4 利用conda创建python虚拟环境5 在vscode中配置Setting json添加Python路径6 最后检验运行Python项
  • 阿里云搭建ftp服务器+FileZilla客户端查看文件

    文章目录 1 阿里云搭建ftp服务器1 1 安装ftp服务器1 2 设置阿里云ECS的安全组 2 FileZilla客户端查看文件 1 阿里云搭建ftp服务器 1 1 安装ftp服务器 1 安装vsftp xff0c sudo span c
  • QtCreator+windows崩溃定位分析

    文章目录 一 Qt程序Release版本记录崩溃信息 xff0c 并定位问题代码1 Release版本程序中生成pdb调试信息文件2 添加代码将程序崩溃时的堆栈保存为crash dmp文件3 使用 WinDbg 分析crash dmp文件
  • Qt项目入门

    一个简单的项目 该项目涉及tcp服务端客户端通信 xff0c 数据库操作 xff0c Log4Qt日志打印 xff0c 不过是关于工业与上位机的一个简单项目处理 xff0c 过程不一定容易理解 xff0c 附上通讯协议 Qt5 12 Min
  • delete this注意事项

    参考资料 在类中调用delete this问题
  • c++较常用的库函数

    不知道原创是谁 xff0c 转载自 xff1a https blog csdn net laozhuxinlu article details 51878947 C 43 43 常用库函数 如图1所示 xff0c 常用数学函数 头文件 in
  • 学习c++的50个网站

    原 xff1a http blog chinaunix net uid 20548989 id 2979724 html 大家都说学Java好找工作 xff0c 可是Java我都遗忘好久了 xff0c 大一大二荒废了 xff0c 没好好练编
  • 数据预处理-数据清洗之numpy创建及属性

    什么是数据预处理 xff1f 数据预处理 xff08 data preprocessing xff09 是指在主要的处理以前对数据进行的一些处理 一般我们得到的数据会存在有缺失值 重复值等 xff0c 在使用之前需要进行数据预处理 它是一系
  • 数据预处理-数据清洗之numpy访问与计算

    如何访问numpy数组中的元素 xff1f 采用索引或者切片的方式 span class token comment 导入包 span span class token keyword import span numpy span clas
  • Unity Spine 换图(通过外部图片)

    在spine中 xff0c 如果想通过外部一张单独的来替换动画中的某个部位 xff0c 需要手动创建Attachment using UnityEngine using System Collections using Spine Unit
  • stm32 esp8266 ota升级-hex合并-烧录-bin生成

    stm32 esp8266 ota系列文章 xff1a stm32 esp8266 ota 快速搭建web服务器之docker安装openresty stm32 esp8266 ota升级 tcp模拟http stm32 esp8266 o
  • 字符串与字符数组的大小

    验证字符串与字符数组的大小 xff0c 代码如下 xff1a include lt stdio h gt int main 字符串与字符数组的区别 int data 61 1 2 3 4 5 char cdata 61 39 h 39 39
  • 数据预处理-数据清洗之pandas库的简单使用

    创建一个series span class token comment 导入包 span span class token keyword import span numpy span class token keyword as span
  • Minimum Snap轨迹规划详解(1)轨迹规划

    一 轨迹规划是什么 xff1f 在机器人导航过程中 xff0c 如何控制机器人从A点移动到B点 xff0c 通常称之为运动规划 运动规划一般又分为两步 xff1a 1 路径规划 xff1a 在地图 xff08 栅格地图 四 八叉树 RRT地
  • RealsenseD415/D435深度相机常用资料汇总

    1 Realsense SDK 2 0 Ubuntu 16 04 安装指导网址 https github com IntelRealSense librealsense blob master doc distribution linux
  • C++STL详解三:迭代器

    C 43 43 STL详解三 xff1a 迭代器 文章目录 C 43 43 STL详解三 xff1a 迭代器前言一 迭代器是什么二 迭代器的案例 xff1a List迭代器的简化版代码1 简单分析List的储存方式2 List的迭代器 三
  • cpp-httplib库的简介与工作流程

    A C 43 43 11 single file header only cross platform HTTP HTTPS library It s extremely easy to setup Just include the htt

随机推荐

  • audiowrite函数用法(matlab)

    audiowrite函数用法 xff08 matlab xff09 一 xff0c 语法 1 2 audiowrite filename y Fs audiowrite filename y Fs Name Value 二 xff0c 解释
  • 5G协议 基本架构 专有名词简称和缩写

    1 先来两个5G架构图 专有名词解释 xff1a 5GC 5G generation core Network 5G核心网络 NG RAN Next generation radio access network 下一代无线接入网络 AMF
  • 加速度计和陀螺仪互补滤波(转载)

    简单易懂的理解 xff1a 这么说吧 xff0c 加速度计计算出来的角度干扰比较大 xff0c 波形比较杂乱 xff0c 陀螺仪融合出来的波形比较平稳但是存在积分漂移 xff0c 所以二者结合 陀螺仪测量角速度积分的基础上利用加速度计测量的
  • 关于精度、分辨率、LSB的理解

    1 精度 是用来描述物理量的准确程度的 精度有关的有两个很重要的指标 xff1a DNL INL DNL xff1a Differencial NonLiner 微分非线性度INL xff1a Interger NonLiner 积分非线性
  • MPU6050教程(转载)

    如果你想玩四轴 xff0c 想搞什么空中鼠标 xff0c 平衡车等待 xff0c 那么MPU6050真的是太强大了 xff0c 能做很多东西 但是论坛上MPU6050整个教学过程基本上是没有的 xff0c 资源共享 xff0c 不应该只在自
  • Swift 中使用SDWebImage

    SDWebImage是开发中常用的插件 xff0c 主要用于加载外部图片 xff0c 具有缓存图片资源的功能 xff0c 然而SDWebImage是由Object C所写 步骤 xff1a 下载SDWebImage https github
  • VSCode的多个(C/C++)源文件的编译运行(Linux)

    引言 VSCode作为微软推出的一款免费的轻量级的集成开发环境 xff0c 可谓是良心之作 它拥有VS的高颜值 xff0c 而且像瑞士军刀一样 xff0c 拥有丰富的插件 xff0c c c 43 43 java python js htm
  • Android 任务栈简介

    Android 任务栈简介 一个Android应用程序功能通常会被拆分成多喝Activity xff0c 而各个Activity之间通过Intent进行连接 xff0c 而Android系统 xff0c 通过栈结构来保存整个App的Acti
  • Error: Invalid character in header content [“Authorization“]

    GET https xxxxxx com api getToken Body 34 eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 eyJleHAiOjE2NzkzMTM5MDB9 VgZnHxBUqR3I PZD
  • 标准C++库有哪些

    C 43 43 标准库的内容基本可以分以下为10类 xff1a C1 标准库中与语言支持功能相关的头文件 C2 支持流输入 输出的头文件 C3 与诊断功能相关的头文件 C4 定义工具函数的头文件 C5 支持字符串处理的头文件 C6 定义容器
  • 示波器解析串口数据

    文章目录 前言一 示波器准备二 硬件介绍三 软件四 串口TTL数据协议1 波特率2 数据起始和停止信号3 数据有效位4 数据校验位 五 示波器探头连接五 串口数据波形捕获 方式1 xff1a 示波器自带的decode进行解码方式2 xff1
  • UART波形分析

    1 逻辑分析仪解码配置 波特率 xff1a 9600 2 逻辑分析仪结果 3 波特率计算 1除以9600 xff0c 结果如下 xff08 e 4表示10的负4次方 xff09 表示 0 00010416秒 61 104 16 微秒 找到发
  • snprintf()函数使用方法

    众所周知 sprintf不能检查目标字符串的长度 xff0c 可能造成众多安全问题 所以都会推荐使用snprintf 自从snprintf代替了sprintf xff0c 相信大家对snprintf的使用都不会少 xff0c 函数定义如下
  • vlc通过udp读取h264码流

    vlc通过udp读取h264码流 在使用gstreamer过程中 xff0c 遇到需要在服务端推送码流 xff0c 客户端接受的情况 xff0c 而有些主机并未安装gstreamer xff0c 但是可以采用vlc读取视频 xff0c 方法
  • ubuntu20.04回退系统内核

    ubuntu20 04回退系统内核 有时候开机之后突然发现nvidia smi检查不到驱动了 分辨率不对 xff0c 第二个屏幕检测不到等等 xff0c 一般来说是因为内核自动更新导致的 xff0c 这里介绍一下内核回退的方法 第一步 查看
  • Unity 重置项目资源的guid

    有时需要将多个项目的资源合并到一个项目中 xff0c 但有可能有些资源是共用的 xff0c 它的guid是一样的 xff0c 这样合并到一个项目时 xff0c 可能会超成冲突 如果要让每个资源的guid都不相同 xff0c 就需要重新生成g
  • zotero+logseq联合阅读文献具体设置

    title zotero 43 logseq联合阅读文献具体设置 date 2022 05 16 16 10 41 tags literature research logseq zotero zotero 43 logseq联合阅读文献具
  • hexo博客同时发布到github和gitee, 并使用gitee page action更新gitee page

    hexo博客同时发布到github和gitee xff0c 并使用gitee page action更新gitee page 发布博客到github page和gitee page 首先在github和gitee中各自建立一个公开仓库 xf
  • 在git bash中使用oh my zsh

    在git bash中使用oh my zsh 安装zsh 首先从官网下载git bash 进入MSYS2 Packages点击File下载 zst压缩包 xff0c 如图所示 xff1a 直接解压至Git根目录下 可通过git bash的快捷
  • 如何编写CMakeLists.txt,并且使用pkg-config

    这里记录一下如何编写CMakeLists txt 本篇blog记录如何在CMakeLists txt中使用pkg config 首先确定cmake版本 cmake minimum required VERSION 3 16 项目名称 pro