之前看到过pkgconfig,完全不理解什么东西,也没有去探究这到底是个啥。

然而今天想要cmake brew的库,无意中查到一种解决方案,就是利用pkg-config。

老神奇了。

# include(FindPkgConfig) # 也有这么写的,我没测试
find_package(PkgConfig REQUIRED) # 关键的一步来啦。假设我要找的是glfw3 glew
pkg_check_modules(PKG_DEP REQUIRED IMPORTED_TARGET glew glfw3) # 好,这里先停一下,直接cmake来config一下,生成CMakeCache.txt,然后我们直接去看这个文件的内容;
# 我们直接搜索PKG_DEP(这个名字当然是随意的啦,自己看着命名吧)
# 不出意外,可以看到很多对应的变量,愉快的用这些宏吧! message(${PKG_DEP_INCLUDE_DIRS})
message(${PKG_DEP_LIBRARY_DIRS})
message(${pkgcfg_lib_PKG_DEP_GLEW})
message(${pkgcfg_lib_PKG_DEP_glfw}) # 自己根据需要去target_include_directories、target_link_libraries吧

具体pkg_check_modules的用法,可以用命令cmake --help-module FindPkgConfig查看吧!

顺便说一下

pkg-config也是挺好用的。pkg-config --libs --cflags glfw3可以看到命令行上需要的libs信息和includes信息等。具体也可以去直接看help。

以上。

memoのcmake和pkgconfig的更多相关文章

  1. FindPkgConfig----CMake的pkg-config模块

    FindPkgConfig A pkg-config module for CMake. CMake的pkg-config模块. Finds the pkg-config executable and ...

  2. CMake相关代码片段

    目录 用于执行CMake的.bat脚本 CMakeLists.txt和.cmake中的代码片段 判断平台:32位还是64位? 判断Visual Studio版本 判断操作系统 判断是Debug还是Re ...

  3. 数据库 --> sqlite3之api使用

    创建 if [ ! -d /opt/dbspace ] then mkdir /opt/dbspace fi if [ -f /opt/dbspace/.memo.db ] then rm /opt/ ...

  4. 在Ubuntu X64上编译Hadoop

    在之前的文章中介绍了如何直接在Ubuntu中安装Hadoop.但是对于64位的Ubuntu来说,官方给出的Hadoop包是32位的,运行时会得到警告: WARN util.NativeCodeLoad ...

  5. ubuntu16.04配置py-faster-rcnn

    在ubuntu16.04下编译安装了py-faster-rcnn. 主要步骤包括:安装cuda/cudnn,换apt源,装开源显卡驱动,装caffe依赖的apt包和python包,下载py-faste ...

  6. 在ubuntu 12.04 x64下编译hadoop2.4

    自己编译hadoop:x64 1.安装依赖包 sudo apt-get install g++ autoconf automake libtool cmake zlib1g-dev pkg-confi ...

  7. caffe + ubuntu16.04 (version without GPU)

    This Guide is based on caffe github wiki guide (https://github.com/BVLC/caffe/wiki/Ubuntu-16.04-or-1 ...

  8. 在Eclipse上建立hadoop2.2.0/hadoop2.4.0源代码阅读环境

    1.安装依赖的包: yum install gcc-c++ g++ autoconf automake libtool cmake zlib1g-dev pkg-config libssl-dev 2 ...

  9. ubuntu14.04下配置使用openCV3.0

    [操  作  系  统] Ubuntu 14.04 LTS [OpenCV版本]  3.0.0-beta [Eclipse 版 本] 3.8.1 需要知识: Linux系统shell命令基础 编译原理 ...

  10. Ubuntu12.04-x64编译Hadoop2.2.0和安装Hadoop2.2.0集群

      本文Blog地址:http://www.cnblogs.com/fesh/p/3766656.html   本文对Hadoop-2.2.0源码进行重新编译(64位操作系统下不重新编译会有版本问题) ...

随机推荐

  1. 【Go】类型转换

    字符串转int32 package main import ( "fmt" "strconv" ) func main() { str := "123 ...

  2. JavaWeb 下载Demo

    JavaWeb 继承 Httpservlet 类实现文件下载的功能 package com.gen; import javax.servlet.ServletException; import jav ...

  3. 一、100ASK_IMX6ULL嵌入式裸板学习_LED实验(中)

    以C语言方式驱动(例程与代码分析) 韦东山的例程: start.s部分: .text .global _start @全局标号 _start: //设置栈 ldr sp,=0x80200000 @设置 ...

  4. hutool调用第三方接口上传文件和下载文件

    1.上传文件接口例子(本地接口) 2.第三方接口 3.调用第三方接口下载文件 4.第三方接口 5.多个文件生成压缩文件

  5. 2.5 OpenEuler 中C与汇编的混合编程

    2.5 OpenEuler 中C与汇编的混合编程 任务详情 在X86_64架构下实践2.5中的内容,提交代码和实践截图 把2.5的内容在OpenEuler中重新实践一遍,提交相关代码和截图 任务一x8 ...

  6. redis 缓存穿透和缓存击穿,缓存雪崩的原因及解决方案

    缓存穿透 缓存穿透是指查询缓存中没有,数据库中也没有的数据 .从系统层面来看,请求像是穿透了缓存,直接访问数据库.这种情况会给系统带来潜在的风险,如果有大量的请求访问系统数据库中不存在的数据,会直接请 ...

  7. Neo4j权威指南学习笔记第一章

    1.创建图数据库 1.1.创建电影节点 CREATE (TheMatrix:Movie {title:'The Matrix', released:1999, tagline:'Welcome to ...

  8. ubuntu 20.04使用kubeadm安装k8s集群

    本文主要用于记录,步骤参考了:https://blog.csdn.net/weixin_44559544/article/details/123381441 一.设备相关准备 1.修改节点主机名,这样 ...

  9. 26_自定义Loader

    自定义Loader loader就是对模块的源代码进行处理(转换),如css-loader.style-loader等 在上一篇的源代码中我们已经知道了loader是在runLoaders才会去使用l ...

  10. win10 打开剪切板失败 拒绝访问 已解决!!

    问题 剪切板使用混乱,导致本地无法复制粘贴 解决办法 terminal运行echo off | clip