[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OT] Netbeans+OpenCV+C++ (Ovviamente su Debian)



qzertywsx <qzertywsx@gmail.com> writes:

> Buon giorno lista,
> Scusate per l'OT, qualcuno di voi programma in c++ e può darmi una mano?
>
> Ho installato le librerie OpenCV da repo Debian, configurato netbeans,
> provo a fare qualche esperimento con le OpenCV, ma anche solo
> includendole mi da errore.
> Questo è il codice della mia applicazione (Ovviamente non fa niente ancora):
>
> #include <stdio.h>
> #include <stdlib.h>
> #include <opencv2/opencv.hpp> //<================= Aggiungo le opencv qui
>
> int main(int argc, char** argv) {
>
>   return (EXIT_SUCCESS);
> }
>
> E questo è l'errore che mi dà:
>
> ...
> Gcc    -c -g -I/usr/include/opencv -I/usr/include/opencv2 -MMD -MP -MF
> build/Debug/GNU-Linux-x86/main.o.d -o build/Debug/GNU-Linux-x86/main.o
> main.c
> In file included from /usr/include/opencv2/opencv.hpp:55:0,
>                  from main.c:10:
> /usr/include/opencv2/ml/ml.hpp:2022:15: fatal error: map: File o
> directory non esistente
> compilation terminated.
> Make[2]: *** [build/Debug/GNU-Linux-x86/main.o] Error 1
> ...
>
> Ovviemente il file "/usr/include/opencv2/ml/ml.hpp" esiste, sembra che
> l'errore sia nell'inclusione della libreria "map", cercandola non l'ho
> trovata.
> Qualcuno sa come posso risolvere?

Avevo provato a creare un progetto con Netbeans, ma mi crashava in fase
di debug. Alla fine ho creato Makefile per il progetto e ho usato Emacs,
ma penso che qualunque IDE decente gestisca i Makefile.

La cosa secondo me importante è usare pkg-config, ad esempio:

--8<---------------cut here---------------start------------->8---
CC 	= g++
CFLAGS 	= -Wall
DEBUG	= -g
LIBS	+= $(shell pkg-config --cflags --libs opencv)


[...]

--8<---------------cut here---------------end--------------->8---

Nota come l'elenco di librerie da includere viene creato al volo con una
subshell.
Prova a lanciare "pkg-config --cflags --libs opencv" da console e
verifica che trovi le libcv dove sono effettivamente installate.
-- 
   Morire, v.:
   	Quello che alla fine qualche paziente fa, giusto per umiliare il
   	dottore.


Reply to: