cheind / dest

:panda_face: One Millisecond Deformable Shape Tracking Library (DEST)
BSD 3-Clause "New" or "Revised" License
288 stars 109 forks source link

dest_align build error #6

Closed AnaZou closed 8 years ago

AnaZou commented 8 years ago

Hello,i have download your src code,and i follow your inductions。First,use cmake to build;After that i build it on vs2013,but i have come a problem with dest_align。It show the LNK2001 with dest.lib,how can i solve the problem

cheind commented 8 years ago

Hi, could you please post the full error log. The error you got means that dest itself didn't build, so dest_align cannot link it.

AnaZou commented 8 years ago

The follows is the full error log. 1>dest_align.obj : error LNK2019: 无法解析的外部符号 "void cdecl cv::fastFree(void *)" (?fastFree@cv@@YAXPEAX@Z),该符号在函数 "public: cdecl cv::Mat::~Mat(void)" (??1Mat@cv@@QEAA@XZ) 中被引用 1>dest.lib(draw.obj) : error LNK2001: 无法解析的外部符号 "void cdecl cv::fastFree(void )" (?fastFree@cv@@YAXPEAX@Z) 1>dest.lib(face_detector.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl cv::fastFree(void )" (?fastFree@cv@@YAXPEAX@Z) 1>dest_align.obj : error LNK2019: 无法解析的外部符号 "private: char * cdecl cv::String::allocate(unsigned int64)" (?allocate@String@cv@@AEAAPEAD_K@Z),该符号在函数 "public: cdecl cv::String::String(class std::basic_string<char,struct std::char_traits,class std::allocator > const &)" (??0String@cv@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) 中被引用 1>dest.lib(draw.obj) : error LNK2001: 无法解析的外部符号 "private: char * cdecl cv::String::allocate(unsigned int64)" (?allocate@String@cv@@AEAAPEAD_K@Z) 1>dest.lib(face_detector.obj) : error LNK2001: 无法解析的外部符号 "private: char * cdecl cv::String::allocate(unsigned int64)" (?allocate@String@cv@@AEAAPEAD_K@Z) 1>dest_align.obj : error LNK2019: 无法解析的外部符号 "private: void cdecl cv::String::deallocate(void)" (?deallocate@String@cv@@AEAAXXZ),该符号在函数 "public: cdecl cv::String::~String(void)" (??1String@cv@@QEAA@XZ) 中被引用 1>dest.lib(draw.obj) : error LNK2001: 无法解析的外部符号 "private: void cdecl cv::String::deallocate(void)" (?deallocate@String@cv@@AEAAXXZ) 1>dest.lib(face_detector.obj) : error LNK2001: 无法解析的外部符号 "private: void cdecl cv::String::deallocate(void)" (?deallocate@String@cv@@AEAAXXZ) 1>dest_align.obj : error LNK2019: 无法解析的外部符号 "void cdecl cv::error(int,class cv::String const &,char const ,char const ,int)" (?error@cv@@YAXHAEBVString@1@PEBD1H@Z),该符号在函数 "public: unsigned char * cdecl cv::Mat::ptr(int)" (??$ptr@E@Mat@cv@@QEAAPEAEH@Z) 中被引用 1>dest.lib(draw.obj) : error LNK2001: 无法解析的外部符号 "void cdecl cv::error(int,class cv::String const &,char const ,char const ,int)" (?error@cv@@YAXHAEBVString@1@PEBD1H@Z) 1>dest.lib(face_detector.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl cv::error(int,class cv::String const &,char const ,char const ,int)" (?error@cv@@YAXHAEBVString@1@PEBD1H@Z) 1>dest_align.obj : error LNK2019: 无法解析的外部符号 "public: void cdecl cv::Mat::deallocate(void)" (?deallocate@Mat@cv@@QEAAXXZ),该符号在函数 "public: void cdecl cv::Mat::release(void)" (?release@Mat@cv@@QEAAXXZ) 中被引用 1>dest.lib(draw.obj) : error LNK2001: 无法解析的外部符号 "public: void cdecl cv::Mat::deallocate(void)" (?deallocate@Mat@cv@@QEAAXXZ) 1>dest.lib(face_detector.obj) : error LNK2001: 无法解析的外部符号 "public: void cdecl cv::Mat::deallocate(void)" (?deallocate@Mat@cv@@QEAAXXZ) 1>dest_align.obj : error LNK2019: 无法解析的外部符号 "public: void cdecl cv::Mat::copySize(class cv::Mat const &)" (?copySize@Mat@cv@@QEAAXAEBV12@@Z),该符号在函数 "public: class cv::Mat & cdecl cv::Mat::operator=(class cv::Mat const &)" (??4Mat@cv@@QEAAAEAV01@AEBV01@@Z) 中被引用 1>dest.lib(draw.obj) : error LNK2001: 无法解析的外部符号 "public: void __cdecl cv::Mat::copySize(class cv::Mat const &)" (?copySize@Mat@cv@@QEAAXAEBV12@@Z) 1>dest.lib(face_detector.obj) : error LNK2001: 无法解析的外部符号 "public: void cdecl cv::Mat::copySize(class cv::Mat const &)" (?copySize@Mat@cv@@QEAAXAEBV12@@Z) 1>dest_align.obj : error LNK2019: 无法解析的外部符号 "void cdecl cv::cvtColor(class cv::_InputArray const &,class cv::_OutputArray const &,int,int)" (?cvtColor@cv@@YAXAEBV_InputArray@1@AEBV_OutputArray@1@HH@Z),该符号在函数 "void cdecl dest::util::toDest(class cv::Mat const &,class Eigen::Matrix<unsigned char,-1,-1,1,-1,-1> &)" (?toDest@util@dest@@YAXAEBVMat@cv@@AEAV?$Matrix@E$0?0$0?0$00$0?0$0?0@Eigen@@@Z) 中被引用 1>dest.lib(draw.obj) : error LNK2001: 无法解析的外部符号 "void cdecl cv::cvtColor(class cv::_InputArray const &,class cv::_OutputArray const &,int,int)" (?cvtColor@cv@@YAXAEBV_InputArray@1@AEBV_OutputArray@1@HH@Z) 1>dest.lib(face_detector.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl cv::cvtColor(class cv::_InputArray const &,class cv::_OutputArray const &,int,int)" (?cvtColor@cv@@YAXAEBV_InputArray@1@AEBV_OutputArray@1@HH@Z) 1>dest_align.obj : error LNK2019: 无法解析的外部符号 "class cv::Mat cdecl cv::imread(class cv::String const &,int)" (?imread@cv@@YA?AVMat@1@AEBVString@1@H@Z),该符号在函数 main 中被引用 1>dest_align.obj : error LNK2019: 无法解析的外部符号 "int cdecl cv::waitKey(int)" (?waitKey@cv@@YAHH@Z),该符号在函数 main 中被引用 1>dest_align.obj : error LNK2019: 无法解析的外部符号 "void __cdecl cv::imshow(class cv::String const &,class cv::_InputArray const &)" (?imshow@cv@@YAXAEBVString@1@AEBV_InputArray@1@@Z),该符号在函数 main 中被引用 1>dest.lib(draw.obj) : error LNK2019: 无法解析的外部符号 "class cv::_InputOutputArray const & cdecl cv::noArray(void)" (?noArray@cv@@YAAEBV_InputOutputArray@1@XZ),该符号在函数 "void cdecl dest::util::drawShape(class cv::Mat &,class Eigen::Matrix<float,2,-1,0,2,-1> const &,int)" (?drawShape@util@dest@@YAXAEAVMat@cv@@AEBV?$Matrix@M$01$0?0$0A@$01$0?0@Eigen@@H@Z) 中被引用 1>dest.lib(draw.obj) : error LNK2019: 无法解析的外部符号 "public: void cdecl cv::Mat::create(int,int const *,int)" (?create@Mat@cv@@QEAAXHPEBHH@Z),该符号在函数 "public: void cdecl cv::Mat::create(int,int,int)" (?create@Mat@cv@@QEAAXHHH@Z) 中被引用 1>dest.lib(draw.obj) : error LNK2019: 无法解析的外部符号 "void cdecl cv::normalize(class cv::_InputArray const &,class cv::_InputOutputArray const &,double,double,int,int,class cv::_InputArray const &)" (?normalize@cv@@YAXAEBV_InputArray@1@AEBV_InputOutputArray@1@NNHH0@Z),该符号在函数 "void cdecl dest::util::drawShape(class cv::Mat &,class Eigen::Matrix<float,2,-1,0,2,-1> const &,int)" (?drawShape@util@dest@@YAXAEAVMat@cv@@AEBV?$Matrix@M$01$0?0$0A@$01$0?0@Eigen@@H@Z) 中被引用 1>dest.lib(draw.obj) : error LNK2019: 无法解析的外部符号 "void cdecl cv::applyColorMap(class cv::_InputArray const &,class cv::_OutputArray const &,int)" (?applyColorMap@cv@@YAXAEBV_InputArray@1@AEBV_OutputArray@1@H@Z),该符号在函数 "void cdecl dest::util::drawShape(class cv::Mat &,class Eigen::Matrix<float,2,-1,0,2,-1> const &,int)" (?drawShape@util@dest@@YAXAEAVMat@cv@@AEBV?$Matrix@M$01$0?0$0A@$01$0?0@Eigen@@H@Z) 中被引用 1>dest.lib(draw.obj) : error LNK2019: 无法解析的外部符号 "void cdecl cv::line(class cv::InputOutputArray const &,class cv::Point,class cv::Point,class cv::Scalar const &,int,int,int)" (?line@cv@@YAXAEBVInputOutputArray@1@V?$Point@H@1@1AEBV?$Scalar_@N@1@HHH@Z),该符号在函数 "void cdecl dest::util::drawRect(class cv::Mat &,class Eigen::Matrix<float,2,4,2,2,4> const &,class cv::Scalar const &)" (?drawRect@util@dest@@YAXAEAVMat@cv@@AEBV?$Matrix@M$01$03$01$01$03@Eigen@@AEBV?$Scalar@N@4@@Z) 中被引用 1>dest.lib(draw.obj) : error LNK2019: 无法解析的外部符号 "void cdecl cv::circle(class cv::InputOutputArray const &,class cv::Point,int,class cv::Scalar_ const &,int,int,int)" (?circle@cv@@YAXAEBVInputOutputArray@1@V?$Point@H@1@HAEBV?$Scalar_@N@1@HHH@Z),该符号在函数 "void cdecl dest::util::drawShape(class cv::Mat &,class Eigen::Matrix<float,2,-1,0,2,-1> const &,class cv::Scalar const &)" (?drawShape@util@dest@@YAXAEAVMat@cv@@AEBV?$Matrix@M$01$0?0$0A@$01$0?0@Eigen@@AEBV?$Scalar@N@4@@Z) 中被引用 1>dest.lib(draw.obj) : error LNK2019: 无法解析的外部符号 "void cdecl cv::putText(class cv::InputOutputArray const &,class cv::String const &,class cv::Point,int,double,class cv::Scalar_,int,int,bool)" (?putText@cv@@YAXAEBVInputOutputArray@1@AEBVString@1@V?$Point@H@1@HNV?$Scalar_@N@1@HH_N@Z),该符号在函数 "void cdecl dest::util::drawShapeText(class cv::Mat &,class Eigen::Matrix<float,2,-1,0,2,-1> const &,class cv::Scalar const &)" (?drawShapeText@util@dest@@YAXAEAVMat@cv@@AEBV?$Matrix@M$01$0?0$0A@$01$0?0@Eigen@@AEBV?$Scalar@N@4@@Z) 中被引用 1>dest.lib(face_detector.obj) : error LNK2019: 无法解析的外部符号 "public: cdecl cv::Mat::Mat(class cv::Mat const &,class cv::Rect const &)" (??0Mat@cv@@QEAA@AEBV01@AEBV?$Rect@H@1@@Z),该符号在函数 "public: class cv::Mat cdecl cv::Mat::operator()(class cv::Rect const &)const " (??RMat@cv@@QEBA?AV01@AEBV?$Rect@H@1@@Z) 中被引用 1>dest.lib(face_detector.obj) : error LNK2019: 无法解析的外部符号 "public: void cdecl cv::Mat::copyTo(class cv::_OutputArray const &)const " (?copyTo@Mat@cv@@QEBAXAEBV_OutputArray@2@@Z),该符号在函数 "public: bool cdecl dest::face::FaceDetector::detectFaces(class cv::Mat const &,class std::vector<class cv::Rect,class std::allocator<class cv::Rect > > &)const " (?detectFaces@FaceDetector@face@dest@@QEBANAEBVMat@cv@@AEAV?$vector@V?$Rect@H@cv@@V?$allocator@V?$Rect_@H@cv@@@std@@@std@@@Z) 中被引用 1>dest.lib(face_detector.obj) : error LNK2019: 无法解析的外部符号 "void cdecl cv::equalizeHist(class cv::_InputArray const &,class cv::_OutputArray const &)" (?equalizeHist@cv@@YAXAEBV_InputArray@1@AEBV_OutputArray@1@@Z),该符号在函数 "public: bool cdecl dest::face::FaceDetector::detectFaces(class cv::Mat const &,class std::vector<class cv::Rect,class std::allocator<class cv::Rect > > &)const " (?detectFaces@FaceDetector@face@dest@@QEBANAEBVMat@cv@@AEAV?$vector@V?$Rect@H@cv@@V?$allocator@V?$Rect_@H@cv@@@std@@@std@@@Z) 中被引用 1>dest.lib(face_detector.obj) : error LNK2019: 无法解析的外部符号 "public: cdecl cv::CascadeClassifier::CascadeClassifier(void)" (??0CascadeClassifier@cv@@QEAA@XZ),该符号在函数 "public: cdecl dest::face::FaceDetector::data::data(void)" (??0data@FaceDetector@face@dest@@QEAA@XZ) 中被引用 1>dest.lib(face_detector.obj) : error LNK2019: 无法解析的外部符号 "public: cdecl cv::CascadeClassifier::~CascadeClassifier(void)" (??1CascadeClassifier@cv@@QEAA@XZ),该符号在函数 "int `public: cdecl dest::face::FaceDetector::data::data(void)'::`1'::dtor$0" (?dtor$0@?0???0data@FaceDetector@face@dest@@QEAA@XZ@4HA) 中被引用 1>dest.lib(face_detector.obj) : error LNK2019: 无法解析的外部符号 "public: bool cdecl cv::CascadeClassifier::load(class cv::String const &)" (?load@CascadeClassifier@cv@@QEAA_NAEBVString@2@@Z),该符号在函数 "public: bool cdecl dest::face::FaceDetector::loadClassifiers(class std::basic_string<char,struct std::char_traits,class std::allocator > const &,class std::basic_string<char,struct std::char_traits,class std::allocator > const &)" (?loadClassifiers@FaceDetector@face@dest@@QEAA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@0@Z) 中被引用 1>dest.lib(face_detector.obj) : error LNK2019: 无法解析的外部符号 "public: void cdecl cv::CascadeClassifier::detectMultiScale(class cv::InputArray const &,class std::vector<class cv::Rect,class std::allocator<class cv::Rect > > &,double,int,int,class cv::Size,class cv::Size_)" (?detectMultiScale@CascadeClassifier@cv@@QEAAXAEBVInputArray@2@AEAV?$vector@V?$Rect@H@cv@@V?$allocator@V?$Rect@H@cv@@@std@@@std@@NHHV?$Size@H@2@2@Z),该符号在函数 "public: bool _cdecl dest::face::FaceDetector::detectFaces(class cv::Mat const &,class std::vector<class cv::Rect,class std::allocator<class cv::Rect_ > > &)const " (?detectFaces@FaceDetector@face@dest@@QEBANAEBVMat@cv@@AEAV?$vector@V?$Rect@H@cv@@V?$allocator@V?$Rect_@H@cv@@@std@@@std@@@Z) 中被引用 1>K:\tools\FaceLandmark\Build\Debug\dest_align.exe : fatal error LNK1120: 24 个无法解析的外部命令

AnaZou commented 8 years ago

I have solved the problem, i have misunderstand your instructions.Thanks for help

cheind commented 8 years ago

Great that you got it working. What confused you, anything I can adapt to avoid misunderstandings?

AnaZou commented 8 years ago

Any other dependencies? Yes, those are inline included and are header only。I misunderstood this,i just set the include header without set the lib link in the vs2013。According to the error list before,it just mean that i haven't link the lib error. I heve train the shape_predictor on the helen dataset with 194 landmarks,but when i test the model,it shows bad result compare to dlib provided shape_predictor.I have try to adjust the param,but the model still perform bad,have u ever meet this problem?

cheind commented 8 years ago

Consider this closed. Please re-open one for quality issue if it persists.