pkg-config --modversion opencv (Package opencv was not found in the pkg-config search path.)

Ubuntu20.04安装Opencv20.04
参考

https://blog.youkuaiyun.com/qq_45915007/article/details/113000097?spm=1001.2101.3001.6650.3&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-3.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-3.pc_relevant_default&utm_relevant_index=6

最后尝试环境配置,均失败
验证安装是否完成,执行下面代码:

pkg-config opencv --modversion

报错

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
No package 'opencv' found

参考

https://blog.youkuaiyun.com/PecoHe/article/details/97476135

是缺失opencv.pc配置信息文件,故解决方法就是添加这个文件然后将其导入到环境变量中,具体操作如下:

首先创建opencv.pc文件:

prefix=/usr/local
exec_prefix=${prefix}
includedir=${prefix}/include
libdir=${exec_prefix}/lib

Name: opencv
Description: The opencv library
Version:4.5.3
Cflags: -I${includedir}/opencv4
Libs: -L${libdir} -lopencv_shape -lopencv_stitching -lopencv_objdetect -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_ml -lopencv_imgproc -lopencv_flann  -lopencv_core
~                                               

Version是Opencv版本(我的是4.5.3)
保存退出,然后将文件导入到环境变量:

export  PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

至此opencv.pc就配置好了
再次执行
opencv_version
pkg-config opencv --modversion
在这里插入图片描述

### 配置PKG_CONFIG_PATH以使pkg-config找到sqlite3.pc文件 当遇到`pkg-config`无法找到特定库(如`sqlite3`)的情况时,通常是因为该库对应的`.pc`文件未被放置在`pkg-config`默认搜索路径中。以下是解决问题的方法: #### 方法一:安装缺失的开发包 如果系统上尚未安装`sqlite3`的开发包,则需要先通过包管理器进行安装。例如,在基于RPM的Linux发行版(如CentOS或Fedora)中,可以通过以下命令完成安装: ```bash yum install sqlite-devel ``` 对于Debian及其衍生版本(如Ubuntu),则可以运行以下命令: ```bash apt-get update && apt-get install libsqlite3-dev ``` 上述操作会自动将`sqlite3.pc`文件放置到系统的标准目录下[^1]。 --- #### 方法二:手动设置环境变量`PKG_CONFIG_PATH` 如果已经安装了`sqlite3`开发包,但其`.pc`文件位于非标准位置,则需将其所在目录添加至`PKG_CONFIG_PATH`环境变量中。具体步骤如下: 1. **查找`.pc`文件的位置** 使用`find`命令定位`sqlite3.pc`文件的具体路径: ```bash find / -name "sqlite3.pc" 2>/dev/null ``` 2. **修改环境变量** 假设查得的结果显示`sqlite3.pc`位于`/usr/local/lib/pkgconfig/`,那么可通过以下方式临时设置`PKG_CONFIG_PATH`: ```bash export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH ``` 若要永久生效,可将此语句追加到用户的shell配置文件中(如`~/.bashrc`或`~/.zshrc`)。编辑完成后重新加载配置文件即可: ```bash source ~/.bashrc ``` 3. **验证配置是否成功** 运行以下命令确认`pkg-config`能够识别`sqlite3`: ```bash pkg-config --modversion sqlite3 ``` 如果返回了SQLite的版本号,则说明配置已成功[^4]。 --- #### 方法三:自定义创建并指定`.pc`文件 若目标环境中确实缺少`sqlite3.pc`文件,也可以自行创建一个简单的`.pc`文件来满足需求。假设SQLite头文件存放在`/opt/sqlite/include`,而动态链接库存放在`/opt/sqlite/lib`,则可以在任意目录下新建名为`sqlite3.pc`的文件,内容如下所示: ```plaintext prefix=/opt/sqlite exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include Name: SQLite3 Description: A C library that implements an SQL database engine. Version: 3.39.0 Libs: -L${libdir} -lsqlite3 Cflags: -I${includedir} ``` 随后按照前述方法更新`PKG_CONFIG_PATH`指向新创建的`.pc`文件所在的目录。 --- ### 示例代码片段 以下是一个完整的Shell脚本示例,用于自动化检测和修复`pkg-config`未能发现`sqlite3`的问题: ```bash #!/bin/bash # 定义可能存储 .pc 文件的目标路径列表 PC_FILE_PATHS=("/usr/local/lib/pkgconfig" "/usr/lib/pkgconfig") # 查找是否存在 sqlite3.pc 文件 FOUND=false for dir in "${PC_FILE_PATHS[@]}"; do if [[ -f "$dir/sqlite3.pc" ]]; then FOUND=true break fi done if ! $FOUND; then echo "Error: Could not locate sqlite3.pc file." else # 设置 PKG_CONFIG_PATH 并测试功能正常与否 export PKG_CONFIG_PATH="$dir:$PKG_CONFIG_PATH" VERSION=$(pkg-config --modversion sqlite3 2>/dev/null) if [[ -n "$VERSION" ]]; then echo "Successfully detected SQLite version: $VERSION" else echo "Failed to detect SQLite via pkg-config even after setting PATH!" fi fi ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值