Undefined reference do cv::ml s opencv_ml a opencv_objdetect

0

Otázka

Při vytváření programu jsem se snažil použít opencv pro otevření souboru ve formátu CSV. A napsal jsem

#include <opencv2/opencv.hpp>
#include <opencv2/ml.hpp>

// ...
cv::Ptr<cv::ml::TrainData> mlData = cv::ml::TrainData::loadFromCSV("train.csv", 1);

A Můj CMakeLists.txt podle OpenCV doktore, je

find_package(OpenCV REQUIRED)

include_directories(${OpenCV_INCLUDE_DIRS})
link_directories(${OpenCV_LIBRARY_DIRS})

message(STATUS "${OpenCV_LIBS}")
add_executable(Test ${EXAMPLE_DIR}/test.cpp)
target_link_libraries(Test ${OpenCV_LIBS} ${PROJECT_NAME})

Ale mám nedefinovaná Chyba:

undefined reference to `cv::ml::TrainData::loadFromCSV(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, int, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char, char)'

Vím, že to bylo proto, že některé opencv libs nebyly propojeny. Nicméně, Tisk-Info V CMakeLists.txt řekl mi, že:

-- opencv_calib3d;opencv_core;opencv_dnn;opencv_features2d;opencv_flann;opencv_gapi;opencv_highgui;opencv_imgcodecs;opencv_imgproc;opencv_ml;opencv_objdetect;opencv_photo;opencv_stitching;opencv_video;opencv_videoio

Zdá se, že spojila jsem všechny libs jsem mohl, ale pořád mám nedefinovanou chybu.

cmake opencv
2021-11-23 03:50:40
1

Nejlepší odpověď

0

Ok, po serval krát sestavování a pečlivě zvážit, konečně jsem našel to, co je špatně s mým programem.

Velký problém je odkaz objednat. Jen jsem dal ${OpenCV_LIBS} před ${PROJECT_NAME}. Když jsem napsal:

target_link_libraries(Test ${PROJECT_NAME} ${OpenCV_LIBS})
target_link_libraries(Train ${PROJECT_NAME} ${OpenCV_LIBS})

Pak je Vše v pořádku.

2021-11-24 03:02:12

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................