Ubuntu下源码编译OpenCV静态库及使用(勾选WITH_QT)

本文详细介绍了如何通过CMake编译OpenCV的静态库,包括配置过程、静态库的生成和验证,以及如何更新pkgconfig文件和环境变量设置,确保程序无需库路径即可运行。

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

前面博客里源码编译出了动态链接库,正常我们apt-get方式或者aptitude方式安装opencv时,装的也是OpenCV的动态链接库,这里想简单验证下OpenCV的静态库。还是用cmake-gui进行编译,详情不细说了,可以参考我之前的博客,BUILD_SHARED_LIBS去掉勾选项,其它选项可以都一致。

博主这里的编译生成的路径和安装路径见下面红色标记线。build_share和install_share对应上篇博客的编译文件和安装文件所在的文件夹。

完毕后,可看到install/lib文件夹下的静态库

这里可以打开pkgconfig下opencv.pc文件,修改为如下内容

# Package Information for pkg-config

prefix=/home/sxhlvye/opencv-3.4.0/install
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir_old=${prefix}/include/opencv
includedir_new=${prefix}/include

Name: OpenCV
Description: Open Source Computer Vision Library
Version: 3.4.0
Libs: -L${exec_prefix}/lib -lopencv_dnn -lopencv_ml -lopencv_objdetect -lopencv_shape -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_imgproc -lopencv_flann -lopencv_core -L${exec_prefix}/share/OpenCV/3rdparty/lib -littnotify -llibprotobuf -llibjpeg -llibwebp -llibpng -llibtiff -llibjasper -lIlmImf -L/home/sxhlvye/qt-everywhere-src-5.15.2/install/lib -lQt5Core -lQt5Gui -lQt5Widgets -lQt5Test -lQt5Concurrent -L/usr/lib/x86_64-linux-gnu -lz -lgstbase-0.10 -lgstreamer-0.10 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lglib-2.0 -lxml2 -lgstvideo-0.10 -lgstapp-0.10 -lgstriff-0.10 -lgstpbutils-0.10 -ldl -lm -lpthread -lrt
Cflags: -I${includedir_old} -I${includedir_new}

同时注意编辑~/.bashrc文件,将opencv.pc文件的路径添加到pkg-congfig的查找路径中去,如下红色标记处。

终端cd到前面很多博客测试的example1.cpp所在目录下,执行如下命令

g++ example.cpp -o example1.out $(pkg-config --cflags --libs opencv)  -lpthread -lrt -ldl 

可以看到程序能够正常编译和执行。并不需要添加库所在路径的环境变量,或者把静态库拷贝到可执行所在目录下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

竹叶青lvye

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值