la compilation en c++, opencv
j'ai un fichier avec uniquement l'importation:
#include <iostream>
#include <stdio.h>
#include "cxcore.hpp"
#include "highgui.hpp"
using namespace cv;
using namespace std;
int main( int argc, char** argv )
{
}
et j'essaie de compiler avec g++ -I/usr/include/opencv -lopencv -lm m.cpp
mais à obtenir de pentecôte erreur:
Dans le fichier inclus à partir de /usr/include/opencv/cxcore.hpp:46,
à partir de m de.rpc:5:
/usr/include/opencv/cxmisc.h:214: erreur: attendu constructeur, destructeur, ou le type de conversion avant que le "vide"
/usr/include/opencv/cxmisc.h:220: erreur: attendu constructeur, destructeur, ou le type de conversion avant de ‘int’
/usr/include/opencv/cxmisc.h:226: erreur: ‘CV_INLINE’ n'est pas le nom d'un type de
/usr/include/opencv/cxmisc.h:516: erreur: ‘CV_DEPTH_MAX’ n'a pas été déclarée dans ce champ d'application
/usr/include/opencv/cxmisc.h:522: erreur: ‘CV_DEPTH_MAX’ n'a pas été déclarée dans ce champ d'application
/usr/include/opencv/cxmisc.h:522: erreur: ‘CV_CN_MAX’ n'a pas été déclarée dans ce champ d'application
Dans le fichier inclus à partir de m de.rpc:5:
/usr/include/opencv/cxcore.php:70: erreur: modèle de déclaration de " cv::CV_EXPORTS cv::Size_’
/usr/include/opencv/cxcore.php:71: erreur: modèle de déclaration de " cv::CV_EXPORTS cv::Point_’
/usr/include/opencv/cxcore.php:72: erreur: modèle de déclaration de " cv::CV_EXPORTS cv::Rect_’
/usr/include/opencv/cxcore.php:77: erreur: attendu initialiseur avant " fromUtf16’
/usr/include/opencv/cxcore.hpp:78: erreur: attendu initialiseur avant " toUtf16’
/usr/include/opencv/cxcore.php:80: erreur: attendu initialiseur avant "format"
/usr/include/opencv/cxcore.hpp:82: erreur: attendu initialiseur avant ‘:’ token
m.rpc:38: erreur: attendu"} ’ à la fin de l'entrée
c'est mon copencv lib contenu:
alberto@zefiro:~$ ls /usr/include/opencv/
cvaux.h cvcompat.h cv.hpp cvtypes.h cvvidsurv.hpp cxcore.h cxerror.h cxmat.hpp cxoperations.hpp highgui.h ml.h
cvaux.hpp cv.h cvinternal.h cvver.h cvwimage.h cxcore.hpp cxflann.h cxmisc.h cxtypes.h highgui.hpp
je suis sur ubuntu 10.10
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin d'inclure les en-têtes de
-I
(i majuscule) et les bibliothèques-l
(L minuscule).Sur le nouveau OpenCV versions que vous devez faire:
Et ensuite essayer de le compiler avec:
Remarque: si vous exécutez seul
pkg-config --cflags --libs opencv
dans la ligne de commande vous permettra de voir les chemins et les bibliothèques que vous devez inclure dans le g++ de la ligne de commande.pkg-config --cflags --libs opencv
pour voir les paramètres exacts de la version globale passe de g++. Ensuite, il suffit de copier les mêmes drapeaux et l'utilisation de votre local chemins d'accès au lieu. Simple!si votre environnement de développement n'ont pas
pkg-config
et de ce fait les accepté de répondre par karlphilip n'est pas pratique, ou, vous avez besoin de savoir l'ensemble minimal des bibliothèques nécessaires pour lier votre application, puis en supposant que le code tel quevous pouvez ajouter de la bibliothèque des arguments à partir de la liste suivante de manière séquentielle à partir du haut jusqu'à ce que vous trouver l'ensemble minimal des arguments que vous avez besoin de:
Par exemple, le code source C répertoriés au début de ce post, les compile et les liens proprement avec seulement
sur mon ancien x86_64 Ubuntu 12.04 boîte.
En supposant que le code C++ comme
ensuite, vous compilez et liez avec
Je vous suggère d'utiliser CMake pour compiler
OpenCV
avecG++
, de cette façon est plus approprié, je pense.install-opencv.sh script.
En exécutant le fichier de script vous
installer automatiquement les fichiers nécessaires pour opencv. Exécuter les opérations suivantes
code:
Dans le cas où si vous installer une autre version de la bibliothèque, veuillez mettre à jour la première ligne de la version à l'intérieur du script d'installation.
Pour plus d'informations, utilisez cette tutoriel. Compiler avec la ligne suivante: