2012-12-16 6 views
8

Je viens de passer énormément de temps à ouvrir openCV correctement dans Ubuntu 12.04 et j'ai pensé partager ce que j'ai appris pour le bénéfice des autres.Compiler et relier OpenCV sous Ubuntu 12.04

OpenCV est maintenant disponible dans les dépôts Ubuntu comme

sudo apt-get install libopencv-dev 

qui est grand, mais je crois que (s'il vous plaît me corriger si je me trompe) que cette version de OpenCV a une convention d'appellation différente pour les bibliothèques . La principale différence est que C++ la ligne include doit lire

#include "opencv2/opencv.hpp" 

qui permettra à votre compilation du code à l'objet mais pas la liaison. L'autre différence est que les bibliothèques statiques ont également été renommées de libcv * à libopencv *. Par exemple binaires peuvent maintenant être situés à

/usr/lib/libopencv_core.so 
/usr/lib/libopencv_highgui.so 
. 
. 
. 

Pour corriger ce que je devais dire explicitement l'éditeur de liens sur les nouveaux noms de bibliothèque en changeant ma commande du compilateur pour

g++ main.cpp -lopencv_core -lopencv_highgui ... 

Ou dans CMake

target_link_libraries(main opencv_core opencv_highgui ...) 

J'espère que cela aide. Et si quelqu'un en sait plus que moi, j'aimerais savoir ce qui se passe ici.

-Mike

+0

savez-vous comment faire la même chose sur Eclipse sur Ubuntu? J'utilise Eclipse 3.7 sur Ubuntu 12.04 .. – wrahool

Répondre

5

Personnellement, j'utilise 'pkg-config' pour obtenir les options de compilation.

g++ `pkg-config --cflags opencv` main.c `pkg-config --libs opencv` -o main 

Exemple de principal:

#include <stdio.h> 
#include <cv.h> 

int main(void) 
{ 
    printf("%s\r\n", CV_VERSION); 
    printf("%u.%u.%u\r\n", CV_MAJOR_VERSION, CV_MINOR_VERSION, CV_SUBMINOR_VERSION); 
}