2011/11/7 Antonio Galea <antonio.galea@xxxxxxxxx> > > Ok, questo conferma che hai la sola versione a 32bit della > libreria. Per qualche motivo, però, o il tuo g++ non accetta > i flag più ovvi per compilare a 32bit (che è strano), oppure i > path su cui cerca sono sballati. > > Hai provato anche questo? > > g++ -m32 -L/usr/lib/i386-linux-gnu -lsqlite3 test.cpp > > Sì avevo già provato: $ g++ -m32 -L/usr/lib/i386-linux-gnu -lsqlite3 textSQLite.cpp /tmp/ccKXdeSP.o: In function `main': textSQLite.cpp:(.text+0x21): undefined reference to `sqlite3_open' collect2: ld returned 1 exit status Come vedi lo stesso errore > Magari fallisce per altri motivi (magari perché l'ambiente di cross > compiling è incompleto) però il linker il simbolo sqlite3_open > dovrebbe trovarlo. Tanto per intendersi, > > nm /usr/lib/i386-linux-gnu/libsqlite3.a | grep sqlite3_open > > Ora vedrai una magia: $ nm /usr/lib/i386-linux-gnu/libsqlite3.a | grep sqlite3_open 0006fda0 T sqlite3_open 0006fdc0 T sqlite3_open16 0006fd80 T sqlite3_open_v2 Mi pare che sia a posto, sotto questo aspetto. ti ritorna qualcosa, vero? Altrimenti la libreria è corrotta... > > Giusto per curiosità, ho scaricato la versione amd64 > di libsquite3-0 e libsqlite3-dev: > > http://packages.ubuntu.com/oneiric/amd64/libsqlite3-0/download > http://packages.ubuntu.com/oneiric/amd64/libsqlite3-dev/download > > Il primo pacchetto dichiara di essere "MultiArch: same", dunque > puoi installare entrambe le versioni i386 ed amd64 senza problemi. > > Qui le cose continuano ad essere strane: $ sudo dpkg -i libsqlite3-0_3.7.7-2ubuntu2_amd64.deb [sudo] password for mario: dpkg: errore nell'elaborare libsqlite3-0_3.7.7-2ubuntu2_amd64.deb (--install): l'architettura del pacchetto (amd64) non corrisponde a quella del sistema (i386) Si sono verificati degli errori nell'elaborazione: libsqlite3-0_3.7.7-2ubuntu2_amd64.deb $ uname -a Linux drako 3.0.0-12-generic #20-Ubuntu SMP Fri Oct 7 14:50:42 UTC 2011 i686 athlon i386 GNU/Linux Deve essere rimasto metà sistema a 32.... > Per quanto riguarda la parte di sviluppo, non c'è nessuna > dichiarazione (in effetti non è ancora ben definito quale > dovrebbe essere lo standard in questi casi) - e guardando > al contenuto c'è di sicuro sovrapposizione almeno sugli > header files. > > Mi pare che questo comprenda solo gli header files e quindi sono "indipendenti" dall'architettura. > Così ad occhio, dovresti essere in grado di installare libsqlite3-0 > in entrambe le versioni e sostituire il pacchetto dev con quello > che la tua architettura si aspetta di avere - ovvero amd64. > > Antonio > Ho l'impressione di dover risolvere un problema più impegnativo con la mia distribuzione... :( -- Ciao, Mario