pkgconfig和环境变量PKG_CONFIG_PATH和PKG_CONFIG_LIBDIR

理解 Linux 下 PKG_CONFIG_LIBDIR 和 PKG_CONFIG_PATH 的作用 pkg-config是一个用于查询已安装软件包的信息的工具,它主要用于检查和获取软件包的编译和链接标志。在交叉编译环境中,这个工具尤为重要,因为它帮助确保正确地定位和使用交叉编译的库和头文件。设置和是在交叉编译环境中确保正确库和头文件定位的关键步骤。这两个环境变量告诉 pkg-config 在哪里寻找.pc文件,以提供正确的库信息。在处理交叉编译环境时,正确配置这些变量是确保项目成功构建的不可或缺的一部分。 阅读详情

pkg-config命令

pkg-config使用第三方库编译程序,指定库文件和头文件的位置。pkg-config就是通过.pc文件获取库的各种必要信息,包括版本信息、编译和链接需要的参数等。不同的系统的库文件的路径不同,用户也可以把库安装到不同的目录下。

环境变量PKG_CONFIG_PATH和PKG_CONFIG_LIBDIR

PKG_CONFIG_PATH环境变量指向目录下的所有*.pc文件,PKG_CONFIG_LIBDIR的优先级比 PKG_CONFIG_PATH 高,所以会覆盖PKG_CONFIG_PATH的设置。
在编译的过程中,会遇见一些文件在系统中存在,但是在编译过程中找不到相应的文件,这个时候就需要使用PKG_CONFIG_PATH的环境变量指定。

例子:
在这里插入图片描述

pkg-config命令

用于查询pkg-config的搜索路径
查看gcc的CFLAGS参数

pkg-config --libs --cflags opencv

显示输出

-I/usr/include/opencv -lcxcore -lcv -lhighgui -lcvaux

在这里插入图片描述

相关链接:
https://www.iteye.com/blog/idealab-591071

linux基础 - pkg-config工具找库的搜索方式之PKG_CONFIG_PATH 在编译软件项目时,通常需要依赖于各种不同的库文件,这些库文件包含了程序所需的功能和资源。为了正确地编译和链接这些库,开发者需要告诉编译器和链接器库文件的位置。pkg-config 是一个常用的工具,用于帮助开发者查找、配置和获取库文件的信息,从而使编译过程更加简单和可靠。 阅读详情

相关推荐

【ffmpeg源码学习】详解pkg-config的作用

摘要: pkg-config是简化C/C++项目构建的工具,通过查询.pc文件自动获取库的编译链接参数。FFmpeg等库会安装.pc文件,记录头文件路径、库依赖等信息。开发者可通过pkg-config --cflags --libs命令快速生成编译选项,无需手动维护路径。使用时需注意设置PKG_CONFIG_PATH环境变量指向.pc文件目录,并处理可能的动态库路径问题。该工具大幅提升了多库依赖项目的开发效率,但依赖库需正确安装并支持pkg-config机制。

weixin_45414088的博客 1404

【Linux】PKG_CONFIG_PATH

目录 [ERROR]为了解决以下部署问题 一、什么是configure 二、什么是pkg-config 1、pkg-config介绍 2、pkg-config功能 3、glib-2.0的.pc文件内容举例 4、 环境变量PKG_CONFIG_PATH 三、运行时库的连接 [ERROR]为了解决以下部署问题 Package sentencepiece was not found in the pkg-config search path. Perhaps you shou

qq_36182852的博客 1万+

云卓遥控器+DIY高清摄像机的方案(完美接入原系统)

发云卓H16 1080P数图控三合一10公里 其中它月

fgh00000的博客 1万+

pkg_config_path 环境变量设置

查看 pkg_config_path环境变量命令 echo $PKG_CONFIG_PATH 查看自己的 pkgconfig路径在哪里 find / -name pkgconfig 设置 pkg_config_path 环境变量方法 有两种方法都可以设置 pkg_config_path 环境变量 。 1、如果你只是想加上某库的pkg,只需要用如下命令: export PKG_CONFIG_PATH=/usr/lib/pkgconfig/ 2、如果你想覆盖掉原来的pkg,可选择...

hhd1988的专栏 5479

VESC电调高级调参指南:电机校准与性能优化实战解析

本文详细解析了VESC电调的高级调参方法,包括电机校准与性能优化实战技巧。从基础参数设置到高级机械参数优化,再到动态性能调优,提供了全面的调参指南。特别针对电机类型、功率设置、电池参数配置等关键环节给出实用建议,帮助用户充分发挥VESC电调的性能潜力。

weixin_30772105的博客 196

模电学习笔记(十二)——跨阻放大器

模电学习笔记(十二) 跨阻放大器 跨组运算放大器是将电流信号转换成为电压信号,电流到电压增益基于反馈电阻。 设计目标: 输入 输出 带宽 电源 0A 100uA 0V 7V 20kHz 15V -15V 1.计算R1的值(增益电阻器) 2.计算C1的值满足电路带宽 ...

tang11081023的博客 2万+

pkg_config_path 环境变量设置 教程

查看 pkg_config_path环境变量命令 1 echo $PKG_CONFIG_PATH 查看自己的 pkgconfig路径在哪里? 1 find / -name pkgconfig 设置 pkg_config_path 环境变量方法 有两种方法都可以设置 pkg_config_path 环境变量 。 1、如果你只是想加上某库的pkg,只需要用如下命令: 1 exp...

tudounizi的博客 481

[MR]RCM约束下的手术机器人

RCM(Remote Center of Motion)约束,通俗讲就是做微创手术时,机械臂插进身体,机械臂受身体的插入点的约束,不能乱动。 相关参考论文 Task Control with Remote Center of Motion Constraint for Minimally Invasive Robotic Surgery ...

土豆大叔的博客 4582

如何修改PKG_CONFIG_PATH环境变量

两种情况,如果你只是想加上某库的pkg,则选择下面其一: export PKG_CONFIG_PATH=/usr/lib/pkgconfig/  或者  export PKG_CONFIG_LIBDIR=/usr/lib/pkgconfig/  如果你想覆盖掉原来的pkg,选择后者。因为: PKG_CONFIG_LIBDIR的优先级比 PKG_CONFIG_PAT

生如蚁,美如神 4万+

移动机器人底盘-四轮差速模型(四轮独立)

对于底盘的前轮和后轮来说,其速度是同步的,那么在理想条件下,可以将底盘运动视为以ICR为圆心做圆周运动,对于四个轮子来说,圆周运动的角速度是一致的,圆周运动圆心ICR始终位于底盘几何中心COG的y轴延长线上,ICR与COG之间的距离。有关,整个底盘的速度位于速度瞬心COM处,用。四轮差速底盘设定左轮、右轮得速度分别为。圆周运动的角速度公式如式1所示。受约束,约束与圆周运动的角速度。合成,设四个轮子的速度分别为。,设左轮和右轮之间的轴距为。为圆周运动角速度,线速度为。,其均由预设目标速度。

Moresweet 猫甜 1万+

安装VMware,出现没有虚拟网络适配器的问题

安装VMware,出现没有虚拟网络适配器的问题

Young_Harry的博客 1万+

简述configure、pkg-config、pkg_config_path三者的关系

简述configure、pkg-config、pkg_config_path三者的关系 什么是configure 源码安装过程中大多会用到configure这个程序,一般的configure都是一个script,执行时可以传入必要参数告知配置项目。 configure程序它会根据传入的配置项目检查程序编译时所依赖的环境以及对程序编译安装进行配置,最终生成编译所需的Makefile文件供程序Make...

qq_42024067的博客 280

基于STM32的智能工业机器人臂控制系统

工业机器人臂是智能制造的核心组件,广泛应用于装配、焊接、搬运等任务。基于STM32微控制器的机器人臂控制系统,通过集成伺服电机驱动、运动规划算法和实时通信功能,实现对多轴机械臂的精确控制与路径规划。本设计通过STM32实现了一套智能工业机器人臂控制系统,集成了高效的运动规划算法和实时控制功能。机器人臂系统根据输入的目标位置(如工件坐标),通过运动学计算生成动作轨迹,利用伺服电机驱动器控制关节运动。该系统广泛应用于工业自动化场景,如汽车制造中的零件装配、电子产品生产中的元件焊接以及物流系统中的物料搬运。

stm32d1219的博客 2568

一文讲透 pkg-config:概念、配置与避坑指南

本文深入解析了pkg-config工具在C/C++开发中的关键作用及常见问题解决方案。主要内容包括: pkg-config核心机制:通过.pc文件管理第三方库的编译参数(头文件路径、库路径、链接选项),解决跨平台兼容性问题。 典型错误分析:以QEMU编译时出现的sizeof(size_t)不匹配错误为例,揭示其根本原因是跨架构错误引用了.pc文件(如32位程序使用了64位的GLib配置)。 解决方案: 优先使用PKG_CONFIG_LIBDIR强制指定架构目录 避免同时设置冲突的环境变量PKG_CONFIG

tianyuanwo的专栏 472

如何理解Fourier Neural Operator (FNO)

2022年Nvidia发表在arXiv上的的FourcastNet作为几乎是最早的一篇气象大模型的工作(之前Google Research的MetNet主要还是对于降水的预报)。除了Transformer的backbone之外,使用到了2021年发表在ICLR上的Fourier Neural Operator。为了更好的理解模型的理论基础,可以详细学习一下以及他的前期工作GNOFNO作者对这两篇文章的解析blog。

momo的博客 1万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Android Studio ndk 开发 cmake 使用pkgconfig

是clang++不识别-pthread,通过执行D:\SDK\ndk\21.3.6528147\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe --help(terminal 执行命令)可以查看所支持的参数,确认是支持-pthread,进一步分。(1)找不到依赖的头文件,也就是前面说的PKG_CONFIG_PATH设置后无效(暂未解决),使用默认搜索路径,默认路径确认方式如前面所讲。规避方案使用默认的搜索路径,如下方法可以查找默认搜索路径。

我的博客 1273

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

V 语言 pkgconfig 模块完全指南:纯 V 实现的 pkg-config 库、命令行工具与 `pkgconfig` 集成

本指南围绕 V 语言标准库中的 `v.pkgconfig` 模块展开。该模块用纯 V 语言重新实现了经典 `pkg-config` 工具:既提供可直接替代 `pkg-config` 的命令行工具,也提供可供 V 程序直接调用的库 API,还深度集成了 V 编译器——你只需在源码中写一行 `#pkgconfig` 指令,编译器就会自动查询 `.pc` 元数据文件并注入正确的编译与链接参数。读完本文,

gitblog_00156的博客 384

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

pkg-config搜索路径与添加

1、搜索 #命令 pkg-config --variable pc_path pkg-config #结果 /usr/local/lib/x86_64-linux-gnu/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig 2、添加 exp...

weixin_41041772的博客 6120

给你的 AI Agent 装上一套本地语音识别工具箱:MacParakeet CLI JSON 契约进阶用法

MacParakeet 是一款免费开源的本地语音应用,专为 Apple Silicon Mac 设计。它内置的 `macparakeet-cli` 提供了一套稳定、机器可读的 **JSON 契约**,让你的 AI Agent 可以直接调用本地语音识别、转写库检索和会议转录等能力——语音推理全部在 Neural Engine 上完成,无需云端 API,也没有按分钟计费。本文带你掌握这套 JSON 契

gitblog_00392的博客 1064

免费跨平台文本编辑器 Notepad--:对比与编码完整指南

Notepad--(ndd)是一款免费跨平台文本编辑器,C++ 与 Qt 构建,原生支持 Windows、Linux、macOS。如果你要处理中文编码、对比两个文件、或整个目录批量替换一个关键字,它最适合你。 ## 你是不是也踩过这几个坑? - 你在 Mac 上打开 GBK 老配置文件,满屏乱码?那个文件基本没法改了。 - 对比结果整篇都标成修改过?其实只是 CRLF 和 LF 换行不同。 -

gitblog_00933的博客 917

linux libdir路径,linux – 使用非标准路径编译glib

我正在编译glib-2.32.1,因此我将libffi-3.0.1安装到以下路径中:~/localroot/lib/头文件位于:~/localroot/lib/libffi-3.0.11/include/但是,当我配置:~/tmp/build_alot/glib-2.32.1 $./configure --prefix=~/localroot我看到以下错误:checking whether to ...

weixin_39729837的博客 1054

使用 pkg-config 集成 GoogleTest:四种主流构建系统的编译链接配置与排查实战

GoogleTest(Google C++ 测试框架)随发行版附带了标准的 pkg-config 描述文件(`.pc`),能够自动推导出编译与链接 GoogleTest(及 GoogleMock)所需的全部标志。本文以当前仓库随附的 GoogleTest 源码(位于 [weex_core/test/third_party/googletest](https://link.gitcode.com/i

gitblog_00168的博客 526

gperftools 集成指南:用 pkg-config 在 CMake 中编译链接 GoogleTest 与 GoogleMock

GoogleTest 与 GoogleMock 随构建系统提供了标准化的 pkg-config 描述文件(`.pc`),可以把编译与链接所需的全部标志(头文件路径、宏定义、线程标志、库路径与库名)一次性查询出来,供 CMake 等主流构建系统直接消费。本文以编译 `samples/sample3_unittest.cc` 为例,完整讲解 `pkg_search_module` 的 CMake 集成

gitblog_00442的博客 273

ubuntu下设置环境变量

之前编译安装ffmpeg,就出现环境变量设置的问题导致后续无法进行,近期编译安装SDL,又要配置环境变量…… 其实很简单 要用的命令 想要使用ffmpeg的pkgconfig只需要 export PKG_CONFIG_PATH=~/ffmpeg_build/lib/pkgconfig/:$PKG_CONFIG_PATH 或者 export PKG_CONFIG_LIBDIR=~/ffmpeg_b...

qq_42602394的博客 555

Linux系统pkg-config 配置工具介绍方法

pkg-config 是一个在 Linux 和其他类 Unix 系统上广泛使用的工具,它帮助开发者在编译和链接时获取正确的库依赖项参数。

weixin_42849849的博客 828

pkg-config-rs 项目常见问题解决方案

pkg-config-rs 项目常见问题解决方案 项目基础介绍 pkg-config-rs 是一个用于 Rust 编程语言的开源项目,旨在通过系统中的 pkg-config 工具来确定库的位置。这个项目主要用于 Cargo 包的构建依赖,帮助 Rust 开发者在使用系统库时更加方便。pkg-config-rs 支持 Rust 1.31 及以上版本,并且可以通过环境变量进行外部配置,特别适用于跨平台...

gitblog_00797的博客 593
上一篇: spec文件
下一篇: 配置问题: Could not find a version of the boost date_time library!
SundayO
博客等级 码龄9年 16粉丝 95原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值