[Linuxtrent] Re: Errore linkinh libsqlite3

  • From: Mario Alexandro Santini <alexmario74@xxxxxxxxx>
  • To: linuxtrent@xxxxxxxxxxxxx
  • Date: Mon, 7 Nov 2011 23:00:09 +0100

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

Other related posts: