[OpenCV] Undefined Reference
Ostatnio zmodyfikowano 2016-12-23 14:56
Łakasabasz Temat założony przez niniejszego użytkownika |
[OpenCV] Undefined Reference » 2016-12-19 18:56:09 Witam,
Pobrałem sobie bibliotekę OpenCv 3.1 i spróbowałem skompilować kod skopiowany z http://forbot.pl/blog/artykuly/programowanie/opencv-2-wykrywanie-obiektow-id4888 dla sprawdzenia czy działa. Niestety, kod kompilował się ładnie, bez jednego ostrzeżenia, ale gdy linker miał dolinkować biblioteki wywalił masę błędów typu Undefined reference. Zabrałem się więc za cmake i spróbowałem skompilować bibliotekę pod MinGW GCC. Napisałem na forum temat, bo miałem z tym problemy, ale na innych stronach zobaczyłem wyjaśnienie i zamknąłem temat. Skompilowałem sobie biblioteki pod gcc i spróbowałem ponownie z tym samym skutkiem (Undefined reference).
Pracuje na Code::Blocks i mam kompilator w wersji 5.3.0 MinGW. Proszę o pomoc. |
|
DejaVu |
» 2016-12-21 17:30:16 |
|
Łakasabasz Temat założony przez niniejszego użytkownika |
» 2016-12-22 19:05:51 Dziękuję, ale problem pozostał... Gdy kompiluje w Code::Blocks przy użyciu ustawień, powstaje instrukcja: mingw32-g++.exe -LC:\libarys\opencv\build\lib -LC:\libarys\SFML-2.4.1\bin\lib -o "bin\Release\Mysz bezprzewodowa.exe" obj\Release\main.o -s -static -lopencv_features2d310.dll -lopencv_flann310.dll -lopencv_objdetect310.dll -lopencv_video310.dll -lopencv_calib3d310.dll -lopencv_imgproc310.dll -lopencv_core310.dll -lopencv_ml310.dll -lopencv_photo310.dll -lopencv_stitching310.dll -lopencv_videostab310.dll -lsfml-main -lsfml-system-s -lopencv_highgui310.dll Podczas linkowania pojawia się problem: obj\Release\main.o:main.cpp:(.text.startup+0x50): undefined reference to `cv::VideoCapture::VideoCapture(int)' obj\Release\main.o:main.cpp:(.text.startup+0x4c8): undefined reference to `cv::VideoCapture::operator>>(cv::Mat&)' obj\Release\main.o:main.cpp:(.text.startup+0xa9b): undefined reference to `cv::VideoCapture::release()' obj\Release\main.o:main.cpp:(.text.startup+0xb0d): undefined reference to `cv::VideoCapture::~VideoCapture()' obj\Release\main.o:main.cpp:(.text.startup+0xc5d): undefined reference to `cv::VideoCapture::~VideoCapture()' Ten sam kod pojawia się z instrukcją, którą zobaczyłem w wyższym przykładzie, jak i bez niej. Więc problem nadal pozostaje. |
|
DejaVu |
» 2016-12-22 20:55:04 |
|
Łakasabasz Temat założony przez niniejszego użytkownika |
» 2016-12-23 14:56:51 Pozbyłem się nie potrzebnych bibliotek i kompiluje instrukcją: mingw32-g++.exe -LC:\libarys\opencv\build\lib -LC:\libarys\SFML-2.4.1\bin\lib -o "bin\Release\Mysz bezprzewodowa.exe" obj\Release\main.o -static -lopencv_core310.dll -lopencv_video310.dll -lopencv_imgproc310.dll -lopencv_highgui310.dll -lsfml-main -lsfml-system-s Skutek taki sam. undefined reference to `cv::VideoCapture::VideoCapture(int) Edit: Mój błąd, zapomniałem do biblioteki opencv_video310.dll dodać litery io, powinno być opencv_videoio310.dll. Teraz wszystko ładnie się kompiluje. Dziękuję. |
|
« 1 » |