无法使Flandmarks工作,C++,错误LNK2019,未解决的外部符号

Cant get Flandmarks to work, C++, Error LNK2019, Unresolved external symbol

本文关键字:LNK2019 未解决 符号 外部 错误 C++ Flandmarks 工作      更新时间:2023-10-16

我想测试Flandmarks的人脸检测http://cmp.felk.cvut.cz/~uricamic/frandmark/但我不能让它工作。

我已经做了大概10个小时了。我在opencv.org上寻求帮助(http://answers.opencv.org/question/16956/eye-detection-is-jumping/,这个问题首先是关于其他事情的,如果你想阅读关于这个问题的评论,请查看评论)得到了一些帮助,但问题仍然存在。

计算机:64位,Windows7,Visual studio 2010。

我尝试过的:

由于这个问题,我被要求尝试一个空项目,所以我这样做了。

我在visual studio c++2010中开始了一个空项目。属性管理器->添加在C/C++下->其他包含目录:

* C:Program Files (x86)opencvbuildinclude
* C:Program Files (x86)opencvbuildincludeopencv
* C:Program Files (x86)opencvbuildincludeopencv2

物业经理->链接器->其他包含目录->

* C:Program Files (x86)opencvbuildx64vc10lib;
* C:Program Files (x86)opencvbuildx64vc10bin; 
* %(AdditionalLibraryDirectories)

属性管理器->链接器->输入->附加依赖项->

* opencv_calib3d244d.lib
* opencv_contrib244d.lib
* opencv_core244d.lib
* opencv_features2d244d.lib
* opencv_flann244d.lib
* opencv_gpu244d.lib
* opencv_haartraining_engined.lib
* opencv_highgui244d.lib
* opencv_imgproc244d.lib
* opencv_legacy244d.lib
* opencv_ml244d.lib
* opencv_nonfree244d.lib
* opencv_objdetect244d.lib
* opencv_photo244d.lib
* opencv_stitching244d.lib
* opencv_ts244d.lib
* opencv_video244d.lib
* opencv_videostab244d.lib

属性管理器->配置管理器->ACtive解决方案平台->

  • 从win32更改为"new",从安腾更改为x64。从"win32"复制设置

从你可以在flandmarks主页下载的zip文件中,我复制了文件夹"libflandmark"中的文件。到我的项目文件夹。我还将dat文件复制到项目文件夹中。

* flandmark_detector.cpp
* flandmark_detector.h
* liblbp.cpp
* liblbp.h
* msvc-compat.h
* flandmark_model.dat

我创建了一个main.cpp,其中添加了:

#include "stdio.h"
#include "flandmark_detector.h"

int main(int argc, char * argv[]) 
{ 
    printf("test");
    FLANDMARK_Model * model = flandmark_init("flandmark_model.dat");
    return 0;
}

之后的错误是:

1>  All outputs are up-to-date.
1>main.obj : error LNK2019: unresolved external symbol "struct model_struct * __cdecl flandmark_init(char const *)" (?flandmark_init@@YAPEAUmodel_struct@@PEBD@Z) referenced in function main
1>C:projectstest_projectsflandmarks_emptyx64Debugflandmarks_empty.exe : fatal error LNK1120: 1 unresolved externals
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:04.47
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

感谢阅读!

编译器正在查找flandmart_init(char const*)。您需要包含定义此函数的头文件。如果您已经包含了它的头文件,那么编译器无法找到函数flandmart_init()的定义位置。现在,如果您有flandmark_detector.cpp和flandmark_model.cpp,因为这看起来像是第三方代码。包括它们的头文件,然后在项目中包括flandmark_model.cpp和flandmark_model.cpp,以定义函数flandmark_init(char const*)的为准。请确保它已编译。将它们与.cpp文件一起添加。您可以右键单击项目上的源文件,然后单击;添加->现有项目。