Ho installato Ubuntu alcuni giorni fa e ho usato apt-get per installare build_essentials, opencv, highgui, ecc. G ++ è 4.6.1, opencv sembra essere 2.1.0 .. Non l'ho fatto t costruire opencv dalla fonte ..Ububtu, opencv e linking
Abbiamo alcuni software che utilizza la funzionalità opencv. Supponiamo che i file di origine siano denominati a.cpp e b.cpp. Compilano a.o e b.o e poi li inserisco in una libreria .so (chiamiamola libab.so).
Infine, c'è un file con il main (chiamalo z.cpp). Provo a creare un eseguibile da esso, ma ottengo un sacco di errori di "riferimento non definito" a cv :: stuff. La mia linea di collegamento simile a questa:
g++ -fPIC -g z.cpp -L../lib -lab -lml -lcvaux -lhighgui -lcv -lcxcore -o z.out
tanto sono gli errori di riferimento non definiti (che sono tutti al cv :: roba).
La parte interessante è che se collego direttamente con i miei file .o, si costruisce bene. Quindi:
g++ -fPIC -g z.cpp a.o b.o -lml -lcvaux -lhighgui -lcv -lcxcore -o z.out
opere.
Tutto ciò che ho letto sembra implicare che questo è probabilmente un problema di ordinamento della linea di collegamento, ma ho provato tutte le permutazioni di ordinamento e ottenere lo stesso problema, quindi non penso davvero che sia il mio problema, ma potrei essere ancora sbagliato Qualcuno ha qualche idea su come posso farlo costruire con la mia libreria, e perché agirebbe diversamente se costruisco con il set completo di file .o che sono nella libreria con successo, ma non riesco a costruire con la libreria stessa?
Ok, quindi questo isn è davvero una "soluzione", ma alla fine ho installato opencv 2.3.1 dal sorgente - ho dovuto anche installare ffmpeg (v0.8 in particolare!) e ora tutto funziona. Quindi, chiaramente aveva qualcosa a che fare con la build di opencv che ho ottenuto con apt-get. Non ho provato questo, ma suppongo che avrei potuto installare 2.1 dal sorgente e avrebbe funzionato anche. Ancora non sono sicuro del motivo per cui la compilazione con la libreria vs il.o sarebbe un problema, ma le cose stanno funzionando ora, quindi .... – daroo