С помощью этот урок, Я пытаюсь объединить различные векторы, которые были созданы с помощью opencv_createsamples
так что я могу сделать несколько тренировок.
Я компилирую mergevec.cpp, используя интерфейс командной строки VS 2010:
cl /EHsc mergevec.cpp
Но я получаю 10 неразрешенных внешних ошибок, здесь:
/out:mergevec.exe
mergevec.obj
mergevec.obj : error LNK2019: unresolved external symbol _cvFree_ referenced in function "void __cdecl icvAppendVec(struct CvVecFile &,struct CvVecFile &,int *,int,int)" (?icvAppendVec@@YAXAAUCvVecFile@@0PAHHH@Z)
mergevec.obj : error LNK2019: unresolved external symbol _cvReleaseMat referenced in function "void __cdecl icvAppendVec(struct CvVecFile &,struct CvVecFile &,int *,int,int)" (?icvAppendVec@@YAXAAUCvVecFile@@0PAHHH@Z)
mergevec.obj : error LNK2019: unresolved external symbol _cvWaitKey referenced in function "void __cdecl icvAppendVec(struct CvVecFile &,struct CvVecFile &,int*,int,int)" (?icvAppendVec@@YAXAAUCvVecFile@@0PAHHH@Z)
mergevec.obj : error LNK2019: unresolved external symbol _cvShowImage referenced in function "void __cdecl icvAppendVec(struct CvVecFile &,struct CvVecFile &,int *,int,int)" (?icvAppendVec@@YAXAAUCvVecFile@@0PAHHH@Z)
mergevec.obj : error LNK2019: unresolved external symbol "void __cdecl icvWriteVecSample(struct _iobuf *,void *)" (?icvWriteVecSample@@YAXPAU_iobuf@@PAX@Z) referenced in function "void __cdecl icvAppendVec(struct CvVecFile &,struct CvVecFile &,int *,int,int)" (?icvAppendVec@@YAXAAUCvVecFile@@0PAHHH@Z)
mergevec.obj : error LNK2019: unresolved external symbol "int __cdecl icvGetHaar
TraininDataFromVecCallback(struct CvMat *,void *)" (?icvGetHaarTraininDataFromVecCallback@@YAHPAUCvMat@@PAX@Z) referenced in function "void __cdecl icvAppendVec (struct CvVecFile &,struct CvVecFile &,int *,int,int)" (?icvAppendVec@@YAXAAUCvV
ecFile@@0PAHHH@Z)
mergevec.obj : error LNK2019: unresolved external symbol _cvCreateMat referenced in function "void __cdecl icvAppendVec(struct CvVecFile &,struct CvVecFile &,int *,int,int)" (?icvAppendVec@@YAXAAUCvVecFile@@0PAHHH@Z)
mergevec.obj : error LNK2019: unresolved external symbol _cvAlloc referenced in function "void __cdecl icvAppendVec(struct CvVecFile &,struct CvVecFile &,int *, int,int)" (?icvAppendVec@@YAXAAUCvVecFile@@0PAHHH@Z)
mergevec.obj : error LNK2019: unresolved external symbol _cvNamedWindow referenced in function "void __cdecl icvAppendVec(struct CvVecFile &,struct CvVecFile &,int *,int,int)" (?icvAppendVec@@YAXAAUCvVecFile@@0PAHHH@Z)
mergevec.obj : error LNK2019: unresolved external symbol "void __cdecl icvWriteV
ecHeader(struct _iobuf *,int,int,int)" (?icvWriteVecHeader@@YAXPAU_iobuf@@HHH@Z) referenced in function "void __cdecl icvMergeVecs(char *,char const *,int,int,int)" (?icvMergeVecs@@YAXPADPBDHHH@Z)
mergevec.exe : fatal error LNK1120: 10 unresolved externals
Как я могу исправить эти проблемы? Нужно ли мне получить некоторые .dll?
Я боролся с тем, чтобы заставить mergevec работать на разных машинах 2 дня! Проблема в том, что это старое?
Кстати, я изменил все ссылки в коде с "cv.h"
в "opencv.h"
, поскольку это имя текущего файла заголовка.
Я пытаюсь собрать mergevec.cpp
в папке со следующей структурой:
opencv/
opencv2/
CMakeLists.txt
createsamples.cpp
cvboost.cpp
cvclassifier.h
cvcommon.cpp
cvhaarclassifier.cpp
cvhaartraining.cpp
cvhaartraining.h
cvsamples.cpp
cxcore.h
cxmisc.h
haartraining.cpp
mergevec.cpp
opencv.hpp
performance.cpp
_cvcommon.h
_cvhaartraining.h
Папка opencv2
имеет каталоги: core, highgui, flann, contrib
и т. д.
Основываясь на ваших комментариях, я изменил команду, чтобы включить библиотеки:
cl /EHsc mergevec.cpp
C:\opencv\build\x64\vc10\lib\opencv_core247d.lib
C:\opencv\build\x64\vc10\lib\opencv_highgui247d.lib
C:\opencv\build\x64\vc10\lib\opencv_flann247d.lib
C:\opencv\build\x64\vc10\lib\opencv_imgproc247d.lib
Но он все еще показывает те же 10 неразрешенных внешних факторов. В отчаянии я даже пытался включить каждый файл библиотеки, но без разницы.
Visual Studio, похоже, не находит библиотеку OpenCV, похоже, что отсутствует проблема с pkg-config. Проверьте это, поскольку я не уверен, как это работает на Windows. Вы связали библиотеку OpenCV в свойствах своего проекта?
В противном случае, если он все еще не работает на VS, я предлагаю вам скомпилировать его под Linux (WM или нет). Проверь это сообщение для получения дополнительной информации.
Других решений пока нет …