2013-07-21 18 views
7

Questo è il mio codice in Visual Studio C++LNK2019: non risolti errore di simbolo esterno in 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; 
} 

Sto usando OpenCV 2.4.6 e Visual Studio 2010. Questo è l'errore:

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 

Per favore aiuto.

+0

controllare questo http://stackoverflow.com/a/11783731/624003 – Sankumarsingh

risposta

13

"simbolo esterno non risolto" significa che non si sta eseguendo il collegamento con la libreria richiesta. Vai a proprietà-> linker-> dipendenze di librerie aggiuntive e aggiungi percorso alle librerie opencv.

0

ho cercato molto per lo stesso problema questa era la soluzione migliore che avevo trovato e ha funzionato per me.

Aprire Proprietà di configurazione> C/C++> Generale e modificare il campo di inclusione aggiuntive directory per aggiungere questi 3 percorsi (per le intestazioni):

C: \ OpenCV2.3 \ accumulo \ include \ OpenCV

C: \ OpenCV2.3 \ accumulo \ include \ opencv2

C: \ OpenCV2.3 \ accumulo \ include

8

In primo luogo verificare How to build applications with OpenCV inside the Microsoft Visual Studio

Se continui a soffrire dello stesso problema, potresti trovarti in uno dei seguenti casi.

  1. La piattaforma della soluzione attiva è x86 ma si sta tentando di collegare librerie OpenCV x64.
  2. La piattaforma della soluzione attiva è X64 ma si sta tentando di collegare librerie OpenCV x86.

Se hai meno di uno di questi casi, controllare Compiling a 64-bit Application in Microsoft Visual Studio Express 2010

+0

Quello che è successo a me, THX! –

5

aggiungere questi nel codice:

#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") 

ha funzionato per me.

+0

Questo l'ha fatto ... Ma perché? EDIT: questo aiuto lo spiega: http://stackoverflow.com/questions/3484434/what-does-pragma-comment-mean – shim

Problemi correlati