Newsgroup: it.comp.lang.c++
Titolo: Errore in Run Time

 
 
Con non poche difficoltà sto cercando di compilare un programma sotto linux il quale fa uso delle librerie Qt5.0.1 , pcl-1.7 e delle OpenCV 2.4.4 
La fase di compilazione ( da QT Creator) non da alcun problema (solo warning) e mi genera l'eseguibile solo che quando tento di esequirlo ottengo questa segnalazione di errore :
 
QMetaType::registerType: Binary compatibility break -- Size mismatch for type 'QPaintBufferCacheEntry' [1024]. Previously registered size 0, now registering size 16.
 
 
Non sono un esperto e non ho idea di come risolvere...... qualche consiglio ? 
 
 
Grazie 

 Non sono un esperto e non ho idea di come risolvere...... qualche consiglio ?
 
Ovviamente non e' un problema che riguarda il linguaggio C++ e nemmeno 
il suo compilatore.
Probabilmente riguarda la libreria Qt, che tuttavia non conosco.
I warning potrebbero darti delle indicazioni utili.
Altrimenti cerca l'uso che fai dei simboli QMetaType::registerType e 
QPaintBufferCacheEntry.
Ma se il programma non l'hai scritto tu ... dovresti chiedere a chi l'ha 
scritto.
 
-- 
 
Carlo Milanesi
http://carlomilanesi.wordpress.com/
 

 Con non poche difficolt� sto cercando di compilare un programma

Uhmmm...sembra, ma non posso essere sicuro, che qualche parte
che include le librerie Qt sia compilata con qualche #define
diversa da quelle usate per compilare le librerie stesse.
Mi spiego meglio:
Potrebbe essere che in un file header della libreria
(es: QPaintQualcosa.h) ci sia qualcosa come:
 
#ifdef ANTANI
  <definizione di QPaintBufferCacheEntry>
#else
  <altra definizione diversa di QPaintBufferCacheEntry>
#
 
Ora, se la libreria viene compilata con ANTANI definito,
usera' la prima versione di QPaintBufferCacheEntry.
 
Pero' se poi includi QPaintQualcosa.h nel tuo programma
ma senza ANTANI definito allora, per il tuo programma,
sara' valida l'altra versione di QPaintBufferCacheEntry.
 
Tutto compila, ma quando esegui il programma va in crash.
 
Se fosse qualcosa del genere mi sembra gia' ammirevole
che ti venga stampato il messaggio d'errore.
 
Poi chissa' cos'altro potrebbe essere...ma questa e'
gia' un'idea.
 
Ciao.


Size mismatch == dimensione non corretta.

Buongiorno
 
Dopo aver ripulito il mio sistema ( Ubuntu 13.04 64bit ) disinstallando tutte le librerie che mi servivano nel mio progetto sono ripartito da zero reinstallando tutto da Sorgenti.
 
 
Quindi ho eliminato\reinstallato le QT library v5.1.1 con QT Creator incluso.
Ho scaricato\compilato\installato le OpenCV v2.4.4
Ho scaricato\compilato\installato le PCL V1.7.0
 
Finalmente riesco a terminare la compilazione del programma. Purtroppo quando tento di eseguirlo ottengo questa segnalazione di errore :
 
./Pippo : error while loading shared libraries: libpcl_common.so.1.7: cannot open shared object file: No such file or directory
 
 
Su Google mi pare di aver visto una serie di post che parlavano di Path e di librerie........ ma non ho molto capito come risolvere questo problema.
 
Qualcuno potrebbe aiutarmi ?
 
Grazie 
Drake
 
 
 
 
 
 


Per prima cosa potresti verificare se quella libreria è installata:
 
locate libpcl_common
 
e postare l' output
 
 
 
 
 

 
$ locate libpcl_common 
/home/drake/pcl-1.7.0/build/lib/libpcl_common.so
/home/drake/pcl-1.7.0/build/lib/libpcl_common.so.1.7
/home/drake/pcl-1.7.0/build/lib/libpcl_common.so.1.7.0
/usr/local/lib/libpcl_common.so
/usr/local/lib/libpcl_common.so.1.7
/usr/local/lib/libpcl_common.so.1.7.0