2013-07-28 88 views
2

我遇到了一個問題,試圖在64位Windows 8計算機上使用Visual Studio Ultimate 2010設置opencv 2.4.6。我知道要添加在包括和dll的引用,但是當我執行的代碼我有它顯示了這個巨大的外部鏈接錯誤:opencv vs 2010依賴關係問題

代碼:

#include "opencv2/highgui/highgui.hpp" 
#include <iostream> 

using namespace cv; 
using namespace std; 

int main(int argc, const char** argv) 
{ 
    Mat img = imread("mypic.JPG", CV_LOAD_IMAGE_UNCHANGED); //read the image data in the   file "MyPic.JPG" and store it in 'img' 

    if (img.empty()) //check whether the image is loaded or not 
    { 
     cout << "Error : Image cannot be loaded..!!" << endl; 
     //system("pause"); //wait for a key press 
     return -1; 
    } 

    namedWindow("MyWindow", CV_WINDOW_AUTOSIZE); //create a window with the name "MyWindow" 
    imshow("MyWindow", img); //display the image which is stored in the 'img' in the "MyWindow" window 

    waitKey(0); //wait infinite time for a keypress 

    destroyWindow("MyWindow"); //destroy the window with the name, "MyWindow" 

    return 0; 
} 

和錯誤是:

1>Build started 7/28/2013 3:08:34 AM. 
1>InitializeBuildStatus: 
1> Touching "Debug\opencv_2.0.unsuccessfulbuild". 
1>ClCompile: 
1> All outputs are up-to-date. 
1>ResourceCompile: 
1> All outputs are up-to-date. 
1>ManifestResourceCompile: 
1> All outputs are up-to-date. 
1>core.obj : error LNK2019: unresolved external symbol "void __cdecl  cv::destroyWindow(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" ([email protected]@@[email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@@Z) referenced in function _main 
1>core.obj : error LNK2019: unresolved external symbol "int __cdecl cv::waitKey(int)" ([email protected]@@[email protected]) referenced in function _main 
1>core.obj : error LNK2019: unresolved external symbol "void __cdecl cv::imshow(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class cv::_InputArray const &)" ([email protected]@@[email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@@Z) referenced in function _main 
1>core.obj : error LNK2019: unresolved external symbol "public: __thiscall cv::_InputArray::_InputArray(class cv::Mat const &)" ([email protected]@@[email protected]@[email protected]@Z) referenced in function _main 
1>core.obj : error LNK2019: unresolved external symbol "void __cdecl cv::namedWindow(class std::basic_string<char,struct std::char_traits<char>,class  std::allocator<char> > const &,int)" ([email protected]@@[email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]) referenced in function _main 
1>core.obj : error LNK2019: unresolved external symbol "class cv::Mat __cdecl cv::imread(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,int)" ([email protected]@@[email protected]@[email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]) referenced in function _main 
1>core.obj : error LNK2019: unresolved external symbol "void __cdecl cv::fastFree(void *)" ([email protected]@@[email protected]) referenced in function "public: __thiscall cv::Mat::~Mat(void)" ([email protected]@@[email protected]) 
1>core.obj : error LNK2019: unresolved external symbol "public: void __thiscall cv::Mat::deallocate(void)" ([email protected]@[email protected]@QAEXXZ) referenced in function "public: void __thiscall cv::Mat::release(void)" ([email protected]@[email protected]@QAEXXZ) 
1>core.obj : error LNK2019: unresolved external symbol "int __cdecl cv::_interlockedExchangeAdd(int *,int)" ([email protected]@@[email protected]) referenced in function "public: void __thiscall cv::Mat::release(void)" ([email protected]@[email protected]@QAEXXZ) 
1>C:\Users\Parker\documents\visual studio 2010\Projects\opencv_2.0\Debug\opencv_2.0.exe : fatal error LNK1120: 9 unresolved externals 
1> 
1>Build FAILED. 
1> 
1>Time Elapsed 00:00:00.67 
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== 

我曾嘗試在其他依賴項中添加.lib文件,但vs2010表示它沒有檢測到它們,因爲我確實看到了另一個帖子,其中有一個像我的問題。 include目錄包括通用的「include」文件夾以及opencv和opencv2文件夾。然後我將build \ x64 \ vc10 \ lib,bin和staticlib添加到附加的lib目錄中。 opencv也被提取到c:\驅動器,所以在那裏不應該有任何問題。我事先感謝大家的幫助!

回答

2

只需更換:

opencv_highgui243.lib 

上:

opencv_highgui243d.lib 
+0

更正:'246'而不是'243' – sgarizvi

+0

爲什麼? –

+0

OP正在使用OpenCV 2.4.6。 – sgarizvi

1

也許你已經包含了發佈庫而不是調試版本。

因爲你已經建立在debug模式,圖書館也應該是debug版本,如:

opencv_highgui243d.lib 

,而不是

opencv_highgui243.lib