2013-07-21 116 views
7

這是我在Visual Studio C++LNK2019:在Visual Studio解析外部符號錯誤C++

#include "stdafx.h" 
#include<opencv\cv.h> 
#include<opencv\highgui.h> 

using namespace cv; 

int main(int argc, char** argv[]) { 
    IplImage* img = cvLoadImage("logo.jpg"); 
    cvNamedWindow("Test", CV_WINDOW_AUTOSIZE); 
    cvShowImage("Test", img); 
    cvWaitKey(0); 
    cvReleaseImage(&img); 
    cvDestroyWindow("Test"); 
    return 0; 
} 

我使用OpenCV的2.4.6和Visual Studio 2010的代碼這是錯誤:

openCV_testing.obj : error LNK2019: unresolved external symbol _cvDestroyWindow 
referenced in function _main 
openCV_testing.obj : error LNK2019: unresolved external symbol _cvReleaseImage  
referenced in function _main 
openCV_testing.obj : error LNK2019: unresolved external symbol _cvWaitKey referenced in 
function _main 
openCV_testing.obj : error LNK2019: unresolved external symbol _cvShowImage referenced 
in function _main 
openCV_testing.obj : error LNK2019: unresolved external symbol _cvNamedWindow  
referenced in function _main 
openCV_testing.obj : error LNK2019: unresolved external symbol _cvLoadImage referenced 
in function _main 

請幫忙。

+0

檢查此http://stackoverflow.com/a/11783731/624003 – Sankumarsingh

回答

13

'無法解析的外部符號'表示您沒有鏈接到所需的庫。 轉到properties-> linker->附加庫依賴關係,並添加opencv庫的路徑。

0

我搜索了很多相同的問題,這是我找到的最好的解決方案,它爲我工作。

打開配置屬性> C/C++>一般,和編輯字段附加包含目錄來添加這些3條路徑(頭):

C:\ OpenCV2.3 \構建\包括\的OpenCV

C:\ OpenCV2.3 \編譯\包括\ opencv2

C:\ OpenCV2.3 \編譯\包括

5

這些添加到你的代碼:

#pragma comment (lib, "opencv_core248d.lib") 
#pragma comment (lib, "opencv_highgui248d.lib") 
#pragma comment (lib, "opencv_imgproc248d.lib") 
#pragma comment (lib, "opencv_video248d.lib") 
#pragma comment (lib, "opencv_features2d248d.lib") 

它爲我工作。

+0

這樣做......但爲什麼?編輯:這幫助解釋它:http://stackoverflow.com/questions/3484434/what-does-pragma-comment-mean – shim

相關問題