提问人:Easyrider 提问时间:7/19/2013 更新时间:11/22/2013 访问量:1395
无法使 Flandmark 正常工作、C++、错误LNK2019、未解析的外部符号
Cant get Flandmarks to work, C++, Error LNK2019, Unresolved external symbol
问:
我想测试 Flandmarks 的人脸检测 http://cmp.felk.cvut.cz/~uricamic/flandmark/ 但我无法让它工作。
我已经为此工作了大约 10 个小时。 我在 opencv.org 上寻求帮助(http://answers.opencv.org/question/16956/eye-detection-is-jumping/,问题首先是关于其他事情,如果您想阅读有关此问题的内容,请参阅评论)并得到了一些帮助,但问题仍然存在。
计算机:64 位,Windows 7,Visual Studio 2010。
我尝试过:
由于这个问题,我被要求尝试一个空项目,所以我这样做了。
我在 Visual Studio c++ 2010 中启动了一个空项目。 属性管理器-> 添加到 C/C++ -> 其他包含目录下:
* C:\Program Files (x86)\opencv\build\include
* C:\Program Files (x86)\opencv\build\include\opencv
* C:\Program Files (x86)\opencv\build\include\opencv2
Property manager-> LInker -> 其他包含目录 ->
* C:\Program Files (x86)\opencv\build\x64\vc10\lib;
* C:\Program Files (x86)\opencv\build\x64\vc10\bin;
* %(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”,其中我从 Itanium 更改为 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:\projects\test_projects\flandmarks_empty\x64\Debug\flandmarks_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中,无论定义函数 flandmart_init(char const *) 哪个。确保它编译。将它们与 .cpp 文件一起添加。您可以右键单击项目上的源文件,然后单击;添加现有项>。
评论