我想測試人臉檢測Flandmarks http://cmp.felk.cvut.cz/~uricamic/flandmark/但我不能得到它的工作。不能得到Flandmarks工作,C++,錯誤LNK2019,無法解析的外部符號
我一直在爲此工作大概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
物業管理器 - >連接 - >附加包含目錄 - >
* 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
物業管理器 - >配置管理器 - >活動解決方案平臺 - >
- Win32中改爲 「新」,在這裏我從安騰改變到x64。從「win32」複製設置
從您可以在flandmarks主頁下載的zip文件,我複製文件夾「libflandmark」中的文件。到我的項目文件夾。而且我還將數據文件複製到項目文件夾中。
* 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 *)" ([email protected]@[email protected]@[email protected]) 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 ==========
感謝您的閱讀!
嘗試用'extern「C」{}'圍繞flandmark頭文件的#include,然後重新進行全新的重建。 –
我試過user2585483s解決方案,它工作,但我很好奇什麼'extern「C」{}'呢?如果你有時間,請解釋。感謝您花時間幫助我! – Easyrider
好消息,它使用了答案中的建議。我曾認爲它可能與'extern「C」{}'有關,因爲它看起來像是一個名稱問題。混合使用C和C++代碼時,編譯器將修改C函數名稱。 'extern「C」{}「會告訴它不要在這個聲明中修改C函數的名字。 –