我是C 的新手,我需要一些庫方面的幫助
。這是一個案例,
這段簡單的代碼:
#include <opencv2/objdetect.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>/span>
#include <opencv2/videoio.hpp>/span>
#include <iostream>
int main() {
cv::CascadeClassifier eye_detection;
return 1;
}
用
進行編譯g main.cpp -I/usr/include/opencv4
回傳我
/usr/bin/ld。/tmp/ccOsUApG.o: na fun??o "main"/span>:
main.cpp:(.text 0x20): 沒有為"cv::CascadeClassifier::CascadeClassifier()"定義參考。
/usr/bin/ld: main.cpp:(.text 0x31): referência nao definida para "cv::CascadeClassifier::~CascadeClassifier()"。
collect2: error: ld returned 1 exit status
這被翻譯為 "未定義的參考"
。我還試圖改變我寫 "包括 "的方式
#include <opencv4/opencv2/objdetect.hpp>/span>
#include <opencv4/opencv2/highgui.hpp>/span>
#include <opencv4/opencv2/imgproc.hpp>
#include <opencv4/opencv2/videoio.hpp>
#include <iostream>
int main() {
cv::CascadeClassifier eye_detection;
return 1;
}
然后用以下方式進行編譯:
g main.cpp
而我有:
在檔案中包含了 main.cpp:1:
/usr/include/opencv4/opencv2/objdetect.hpp:47:10: fatal error: opencv2/core.hpp: Arquivo ou diretório inexistente
47 | #include "opencv2/core.hpp"/span>
| ^~~~~~~~~~~~~~~~~~
編譯終止了。
這就意味著沒有找到檔案
。我檢查了其他類似的問題,比如這個問題,但我已經在做了,但沒有成功。
我想過將 "opencv2 "檔案夾直接扔到 "include "檔案夾中,但這似乎不對,我怎樣才能以正確的方式編譯這段代碼?
uj5u.com熱心網友回復:
最后我想明白了,我按照庫網站上說的創建了CMakeList檔案,但還是沒有成功,所以我決定從系統的包管理器中卸載我的包,然后手動安裝,下載代碼并用cmake編譯,現在確實成功了,盡管我什么都沒改(可能只是改變了檔案夾,我之前沒能指對它)
。總之,cpp比我想象的要復雜得多,從現在開始要多看看make和cmakes檔案
。轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/328639.html
標籤:
上一篇:Ionic6.更新到cordova10.0.0后不顯示谷歌地圖
下一篇:消費者沒有消費資訊服務總線佇列
