2012-02-06 13 views
6

Sono nuovo di OpenCV e ho riscontrato un problema con il collegamento.Collegamento a OpenCV 2.3.1 su Ubuntu

sto usando Ubuntu 11.10, OpenCV 2.3.1 è stato installato secondo le this guida:

Sto costruendo molte piccole applicazioni con esso, e si guarda bene. Di solito, sto costruendo con pkg-config --libs --cflags opencv.

Ora, sto provando a costruire un framework che qualcun altro ha scritto, compila senza problemi, ma non riesco a collegarlo: c'è una lunga lista di "riferimenti irrisolti a ..." (migliaia di loro). tutti i simboli relativi a opencv_core non sono stati trovati.

Ho provato a ricompilare OpenCV senza il supporto dell'intestazione precompilato, non ha aiutato. ovviamente. :(

l'applicazione test_opencv_core sta funzionando benissimo, ma non è riuscito opencv_rand. Penso che dice che opencv_core è corretto, in generale, ma ancora non funziona quando ne ho bisogno ...

potete per favore ? cercare di darmi qualche suggerimento mi sono perso ci

Grazie in anticipo, David

Aggiornamento:.. risolto

gcc 4.6.1 richiede che le librerie e le sorgenti vengano visualizzate nella riga di comando prima dei percorsi alle librerie condivise. perché? non lo so appena trascorso 24 ore per questo stupido errore :(

Aggiornamento:. Comprensibile dalla pagina ld man:

Il linker cerca un archivio solo una volta, nel punto in cui si è specificato nella riga di comando Se l'archivio definisce un simbolo che non era definito in qualche oggetto che appariva davanti all'archivio sulla riga di comando, il linker includerà il file appropriato dall'archivio. Tuttavia, un simbolo indefinito in un oggetto che appare in seguito sulla riga di comando non farà in modo che il linker cerchi di nuovo nell'archivio .

Vedere il - (opzione per un modo per forzare il linker a cercare gli archivi più volte

Questo è tutto

+0

Se l'altro quadro è fornito come una libreria che si collega a, quindi.. Dovresti anche collegarti a OpenCV da te –

+0

Grazie, questo framework è usato come file di oggetti, non come libreria condivisa, sto solo cercando di compilare un'applicazione di esempio che usa questi oggetti e il collegamento non funziona – David

+3

pubblica la tua soluzione come risposta (invece di una domanda di modifica) e accettala, in questo modo gli altri sanno che viene data risposta nel futuro. – mevatron

risposta

1

gcc 4.6.1 richiede che le librerie e le fonti appariranno nella.. . riga di comando prima di percorsi di librerie condivise, non so il motivo per cui

Aggiornamento:. Comprensibile dalla pagina ld uomo:.

Il linker cercherà un archivio solo una volta, nella posizione in cui è specificato nella riga di comando.Se l'archivio definisce un simbolo che non era definito in qualche oggetto che appariva davanti all'archivio sulla riga di comando, il linker includerà il file appropriato dall'archivio. Tuttavia, un simbolo indefinito in un oggetto che appare in seguito nella riga di comando non farà in modo che il linker cerchi di nuovo nell'archivio .

Vedere il - (opzione per un modo per forzare il linker agli archivi cercare più volte

Questo è tutto

Problemi correlati