web-dev-qa-db-fra.com

LNK2019: erreur de symbole externe non résolue dans Visual Studio C++

Ceci est mon code dans 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;
}

J'utilise OpenCV 2.4.6 et Visual Studio 2010. Voici l'erreur:

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

S'il vous plaît aider.

8
sandy

'symbole externe non résolu' signifie que vous ne liez pas avec la bibliothèque requise . Allez à propriétés-> lieur-> dépendances supplémentaires de la bibliothèque et ajoutez le chemin d'accès à la bibliothèque opencv.

14
ladan

Première vérification Comment créer des applications avec OpenCV dans Microsoft Visual Studio

Si vous souffrez toujours du même problème, vous pourriez être dans l'un des cas ci-dessous.

  1. Votre plate-forme de solution active est x86, mais vous essayez de lier des bibliothèques OpenCV x64.
  2. Votre plate-forme de solution active est X64, mais vous essayez de lier des bibliothèques OpenCV x86.

Si vous êtes dans l'un de ces cas, cochez la case suivante Compilation d'une application 64 bits dans Microsoft Visual Studio Express 2010

9
zjkgoo

Ajoutez-les dans votre code:

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

Cela a fonctionné pour moi.

5
Ande

j'ai cherché beaucoup pour le même problème c'était la meilleure solution que j'avais trouvée et cela a fonctionné pour moi.

Ouvrez les propriétés de configuration> C/C++> Général et modifiez le champ Répertoires d'inclusion supplémentaires pour ajouter ces 3 chemins (pour les en-têtes):

C:\OpenCV2.3\build\include\opencv

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

C:\OpenCV2.3\build\include

0
yamen