Ubuntu 自定义环境变量 pkg-config / PKG_CONFIG_PATH

本文介绍了Ubuntu系统中如何自定义pkg-config的环境变量PKG_CONFIG_PATH,以解决找不到库配置文件的问题。文章详细讲解了pkg-config的作用,包括获取库信息、管理编译参数等功能,并给出了opencv为例的实战操作,包括创建缺失的opencv.pc文件和添加环境变量到~/.bashrc。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

0. 前言

今天在执行一段脚本的时候,爆出错误:

Package opencv was not found in the pkg-config search path.
Perhaps you should add the directory containing `opencv.pc'
to the PKG_CONFIG_PATH environment variable

意思是在 PKG_CONFIG_PATH 环境变量中没有找到 opencv 的配置文件 ‘opencv.pc’,即 opencv 不在 pkg-config 的搜索路径,那什么是 pkg-config?什么是 PKG_CONFIG_PATH?

 

1. pkg-config

  一般我们写的程序都是要依赖一些库,如 opencv,但库的安装位置可能不同,这时就需要一个工具能够管理并能搜索这些库的路径(头文件路径 /include,库文件路径 /lib)。

  pkg-config 就是通过库提供的一个 .pc 文件获得库的各种必要信息的,包括版本信息、编译和连接需要的参数等。通过 pkg-config 提供的参数(–cflags, –libs),将所需信息提取出来供编译和连接使用。这样,

### 如何在 Ubuntu 20.04 上正确安装和使用 `pkg-config` `pkg-config` 是一种帮助编译应用程序和的工具,它可以存储的编译器标志和链接器标志,并允许维护这些信息的中央数据。以下是关于如何在 Ubuntu 20.04 上正确安装和使用 `pkg-config` 的详细说明。 #### 安装 `pkg-config` 如果尚未安装 `pkg-config`,可以通过以下命令来完成安装: ```bash sudo apt update sudo apt install pkg-config ``` 这会更新软件包列表并安装最新的 `pkg-config` 版本[^3]。 #### 验证安装 为了验证 `pkg-config` 是否成功安装以及其版本号,可以运行以下命令: ```bash pkg-config --version ``` 该命令将返回当前安装的 `pkg-config` 的版本号[^1]。 #### 使用 `pkg-config` 当开发人员需要构建依赖于特定的应用程序时,`pkg-config` 可以提供必要的编译选项和链接选项。例如,在编译一个依赖 OpenCV 的 C++ 程序时,可以这样调用 `g++` 编译器: ```bash g++ $(pkg-config --cflags opencv4) your_program.cpp -o your_program $(pkg-config --libs opencv4) ``` 上述命令中的 `--cflags` 和 `--libs` 参数分别用于获取头文件路径和其他编译参数,以及文件路径和其他链接参数。 #### 解决常见问题 ##### 如果找不到某些怎么办? 有时即使已经安装了某个(如 OpenCV),但在尝试通过 `pkg-config` 获取其编译或链接选项时可能会失败。这是因为 `.pc` 文件未被找到或者环境变量设置不正确。解决方法如下: - **确认 .pc 文件存在** 检查 `/usr/lib/x86_64-linux-gnu/pkgconfig/` 或其他标准目录下是否存在对应的 `.pc` 文件。对于 OpenCV 来说,应该有名为 `opencv4.pc` 的文件。 - **检查 PKG_CONFIG_PATH 环境变量** 如果自定义位置存放了 `.pc` 文件,则需将其加入到 `PKG_CONFIG_PATH` 中。例如: ```bash export PKG_CONFIG_PATH=/path/to/custom/pkgconfig:$PKG_CONFIG_PATH ``` - **重新生成 .pc 文件** 对于手动编译安装的(比如自行编译的 OpenCV),可能需要确保 CMake 构建过程中生成了正确的 `.pc` 文件。通常情况下,默认会在指定前缀下的 `lib/pkgconfig/` 子目录中创建它们。 #### 处理网卡驱动缺失的情况 需要注意的是,如果您正在使用 live server ISO 进行安装,可能存在一些硬件兼容性问题,特别是网络适配器的支持不足情况。在这种情形下,建议下载最新固件并将之拷贝至目标设备后再继续操作。具体步骤可参阅相关文档[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值