簡體   English   中英

無法找到 OpenCV header,但 pkg-config 包含路徑

[英]Unable to locate OpenCV header, but pkg-config contains path

為了在我的 Mac 上安裝 OpenCV,我選擇使用brew install opencv代替 Mac 安裝教程中指定的從源代碼構建。 Homebrew 的安裝路徑似乎是 /opt/homebrew,而我下載的所有包含的包似乎都包含在該目錄的 include 中。

我編寫了一個示例程序程序來測試安裝:

#include <opencv4/opencv2/imgcodecs.hpp>
#include <opencv4/opencv2/highgui.hpp>
#include <opencv4/opencv2/imgproc.hpp>
#include <iostream>

using namespace std;
using namespace cv;

int main() {
    VideoCapture cap(0);
    Mat img;
    
    while (1) {
        cap.read(img);
        imshow("Image", img);
        
        if (waitKey(1) == 27) {
            break;
        }
    }

    return 0;
}

而且,為了編譯它,我運行了:

g++ video.cpp `pkg-config --cflags --libs opencv4`

返回:

fatal error: 'opencv4/opencv2/imgcodecs.hpp' file not found

我運行pkg-config --cflags --libs opencv4來檢查它是否設置正確,並返回以下內容:

-I/opt/homebrew/Cellar/opencv/4.5.2_4/include/opencv4 -L/opt/homebrew/Cellar/opencv/4.5.2_4/lib -lopencv_gapi -lopencv_stitching -lopencv_alphamat -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dnn_superres -lopencv_dpm -lopencv_face -lopencv_freetype -lopencv_fuzzy -lopencv_hfs -lopencv_img_hash -lopencv_intensity_transform -lopencv_line_descriptor -lopencv_mcc -lopencv_quality -lopencv_rapid -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_sfm -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_superres -lopencv_optflow -lopencv_surface_matching -lopencv_tracking -lopencv_highgui -lopencv_datasets -lopencv_text -lopencv_plot -lopencv_videostab -lopencv_videoio -lopencv_viz -lopencv_wechat_qrcode -lopencv_xfeatures2d -lopencv_shape -lopencv_ml -lopencv_ximgproc -lopencv_video -lopencv_dnn -lopencv_xobjdetect -lopencv_objdetect -lopencv_calib3d -lopencv_imgcodecs -lopencv_features2d -lopencv_flann -lopencv_xphoto -lopencv_photo -lopencv_imgproc -lopencv_core

我認為這意味着 OpenCV 的路徑設置為在編譯期間鏈接 package,所以我想知道為什么 linker 找不到它。 另外,我的最終目標是編寫一個涉及 pcl 的程序,並且我還通過 brew 安裝了 pcl。 由於它也包含在 opt/homebrew/ 中,所以在制作蛋糕文件時是否必須在 /usr/ 之外創建對其路徑的特定引用? 謝謝!

謝謝@Alan Birtles。 這只是我的包含問題。 對於那些閱讀, #include <opencv4/opencv2/imgcodecs.hpp> ,以及所有其他 OpenCV 包,必須直接參考 OpenCV2。 因此,例如,它必須是#include <opencv2/imgcodecs.hpp>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM