Package-Management
理解幾乎不包含文件的包
$ uname -a Linux laptop 4.19.0-2-amd64 #1 SMP Debian 4.19.16-1 (2019-01-17) x86_64 GNU/Linux
我需要使用
cv::face::createLBPHFaceRecognizer()
,它不是核心 OpenCV 的一部分,而是一個貢獻模組。$ dpkg -l libopencv-contrib-dev ii libopencv-contrib-dev:amd64 3.2.0+dfsg-6 amd64 development files for libopencv-contrib3.2
一切都很好……不:
src/cmd.cpp:150: error: ‘cv::face’ has not been declared const auto model = cv::face::createLBPHFaceRecognizer(); ^~~~
好的。然後讓我們手動包含所需的標題:
$ dpkg -S libopencv-contrib-dev libopencv-contrib-dev:amd64: /usr/share/doc/libopencv-contrib-dev libopencv-contrib-dev:amd64: /usr/share/doc/libopencv-contrib-dev/changelog.Debian.gz libopencv-contrib-dev:amd64: /usr/share/doc/libopencv-contrib-dev/copyright libopencv-contrib-dev:amd64: /usr/share/doc/libopencv-contrib-dev/README.Debian
沒有!這是打包者的錯誤嗎(畢竟這是 Debian**測試)?**OpenCV 的特性?我這邊的一個小疏忽?我想繼續使用包管理器,而不是自己編譯整個東西。
軟體包很好,您使用了錯誤的
dpkg
選項:dpkg -L libopencv-contrib-dev
將列出 中的所有文件
libopencv-contrib-dev
,這就是您所追求的(並將顯示此處列出的所有文件),而dpkg -S libopencv-contrib-dev
在所有已安裝的軟體包中搜尋
libopencv-contrib-dev
其路徑中的文件,該路徑僅匹配您列出的四個文件。
這是我的疏忽。
#include <opencv2/opencv.hpp> #include <opencv2/face.hpp>
第一個包含是不夠的,第二個也是需要的。
雖然這解決了問題,但我希望能解釋一下為什麼沒有任何有用的文件出現在
dpkg -S
.