Visual Studio 2012 avec OpenCV ver 2.4.10 DLL erreur manquant
J'ai trouvé plusieurs questions relatives à la présente et d'avoir essayé. Cependant, je suis toujours incapable de résoudre le problème. Ci-dessous sont des sites que j'ai utilisé et une explication de ce que j'ai fait.
Visual Studieo 2010 avec OpenCV 2.3.0
Un autre de Visual Studio 2010 exemple
Ce que j'utilise sont:
- Windows 7 Professional x64
- Visual Studio 2012 Pour Windows Desktop
- OpenCV v2.4.10 extrait de D:\Development\OpenCV
L'étape 1:
Je suis allé dans Ordinateur > Propriétés > paramètres système Avancés > Variables d'Environnement et a ajouté:
D:\Development\openCV\build\x64\vc11\bin\
à la fin de la Chemin variable. Et puis j'ai redémarré l'ordinateur.
L'étape 2:
Créé un nouveau projet et de modifier les Propriétés pour Toutes les Configurations.
- Sous Propriétés de Configuration > C/C++ > Général, j'ai ajouté
D:\Development\openCV\build\include
- Sous Propriétés de Configuration > Linker > Général, j'ai ajouté
D:\Development\openCV\build\x64\vc11\lib
- Sous Propriétés de Configuration > Linker > Entrée, j'ai ajouté
opencv_calib3d2410d.lib
opencv_contrib2410d.lib
opencv_core2410d.lib
opencv_features2d2410d.lib
opencv_flann2410d.lib
opencv_gpu2410d.lib
opencv_highgui2410d.lib
opencv_imgproc2410d.lib
opencv_legacy2410d.lib
opencv_ml2410d.lib
opencv_nonfree2410d.lib
opencv_objdetect2410d.lib
opencv_photo2410d.lib
opencv_stitching2410d.lib
opencv_superres2410d.lib
opencv_ts2410d.lib
opencv_video2410d.lib
opencv_videostab2410d.lib - Sous Propriétés de Configuration > Linker > Avancé, j'ai changé la Machine Cible à MachineX64.
Étape 3: Pour Build > Gestionnaire de Configuration, le projet est modifié à la plate-forme x64.
Étape 4: j'ai copié et collé le code dans l'un des liens ci-dessus avec le chemin d'accès de l'image modifiée et construit.
#include "stdafx.h"
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
Mat im = imread("D:/lena.png");
if (im.empty())
{
cout << "Cannot load image!" << endl;
return -1;
}
imshow("Image", im);
waitKey(0);
}
Étape 5: j'ai appuyé sur F7 et la solution intégrée avec succès. (Malheureusement, a pris un certain temps pour arriver à ce point)
Problème est lorsque j'appuie sur F5, j'obtiens un message d'erreur indiquant que Le programme ne peut pas démarrer car opencv_core2410d.dll est absent de votre ordinateur. Essayer de réinstaller le programme pour corriger ce problème."
Je pensais que la première étape de l'ajoutant le chemin d'accès est la solution.
En déplaçant la DLL dans le D:\Development\VisualStudio\opencvHelloWorld\x64\Debug dossier, je peux exécuter le fichier exécutable. Quelqu'un peut-il faire la lumière sur la façon de résoudre ce problème? Ce qui me manque?
Merci!
Vous devez vous connecter pour publier un commentaire.
OpenCV besoins de toutes les dll que vous utilisez pour votre projet afin d'être dans le même répertoire que l'exécutable. Vous pouvez copier les dll dont vous avez besoin, dans ce cas opencv_core2410d.dll dans votre dossier de débogage et de opencvcore2410.dll dans votre dossier de version, ou un ensemble de visual studio pour déplacer votre fichier exécutable dans le dossier bin. Cette option est dans le cadre du Projet->Propriétés, ainsi que sur la page, vous pouvez changer le répertoire de sortie.
Une autre option est d'utiliser les bibliothèques statiques au lieu de bibliothèques dynamiques de opencv. Cela va ajouter de tout opencv fonctions que vous utilisez dans votre exécutable au lieu d'utiliser séparée dll. Cela rendra votre exécutable beaucoup plus gros, mais permettra d'éliminer les problèmes dll. Dans le opencv répertoire, en vertu de construire/x64 ou x86/vc11, utiliser les bibliothèques dans le staticlib dossier pour créer le projet comme un projet statique. Vous aurez besoin d'ajouter un peu plus de ressources dans votre solution pour compiler au premier abord. Cette réponse devrait aider avec n'importe quel éditeur de liens les questions que vous obtenez par le passage à une accumulation d'électricité statique.
Si vous prévoyez sur le déploiement de votre exécutable et vous ne voulez pas de paquet dll avec elle, à l'aide de bibliothèques statiques est une autre façon, vous pouvez aller sur votre projet
Suffit de redémarrer Visual Studio APRÈS vous ajoutez bin dans votre PATH.
Veuillez ajouter la ligne suivante dans Propriétés de Configuration > C/C++ > Général,
1. D:\Development\openCV\build\include
2. D:\Development\openCV\build\opencv
3. D:\Development\openCV\build\opencv2
Cela permettra de résoudre votre problème.