Pagina 1 di 1

[RISOLTO] errore linking librerie fltk slackware 13.1 multi

Inviato: gio 21 ott 2010, 13:22
da sim
Salve a tutti.

Ho installato la Slackware 13.1 64 bit. Ho compilato ed installato con uno slackbuild le librerie fltk, usandole senza problemi.
Sfruttando i pacchetti generosamente preparati da AlienBOB, ho convertito la mia Slack in multilib. Le librerie fltk funzionavano ancora senza problemi.
Ho compilato e installato il kernel 2.6.35.7 con la patch BFS, le librerie funzionavano ancora.
Dopo vari tentativi ed armeggiamenti, ho installato i driver ATI proprietari (10.5). Da questo momento in poi, le librerie fltk non hanno funzionato più, nel senso che quando dovevano essere utilizzate per la compilazione di altri programmi, ha iniziato ad apparire il messaggio di errore “skipping library libfltk.a: file in the wrong format” (o qualcosa del genere), come se per il sistema la libreria che fino a poco prima funzionava, non andasse più bene.
Ho ricompilato il pacchetto con il nuovo kernel, seguendo le istruzioni di AlienBOB, ma niente.
Ho provato anche ad installarle senza lo SlackBuild, ma niente lo stesso.
La cosa singolare è, comunque, che restituisce l’errore solo se compilo con l’utente con cui mi sono loggato. Mi spiego meglio: oltre a root, ho anche l’utente normale sim. Se mi loggo con sim, mi dà l’errore su descritto; facendo “su root”, la compilazione va a buon fine. Se mi loggo con root, dà errore; facendo “su sim”, la compilazione va a buon fine.

Ho risolto convertendo il pacchetto fltk-1.1.10 a 32 bit scaricato da slacky in un pacchetto compatibile con l’utility di AlienBOB. Ora le fltk sono utilizzabili, anche se sono in formato compatibile.

Vorrei comunque sapere se qualcuno mi sa dire qualcosa sulla stranezza che ho descritto.
Scusate la prolissità.

Re: errore linking librerie fltk su slackware 13.1 multilib

Inviato: gio 28 ott 2010, 20:01
da sim
Ciao a tutti di nuovo.
Ho provato a reinstallare le fltk compilandole nativamente a 64 bit. Purtroppo hanno sempre lo stesso bizzarro comportamento.
Se compilo con l'utente con cui accedo, mi dice sempre che le librerie non sono quelle per il sistema a 64 bit. Appena utilizzo il comando "su", tutto funziona per bene.
Il bello è che se io accedo al sistema con l'utente sim, e cerco di compilare ho l'errore. Se faccio da console "su sim" (ovvero utilizzo "su" con lo stesso utente con cui ho acceduto al sistema) la compilazione va a buon fine e le librerie fltk vengono riconosciute dal sistema.

Ma cosa carica il comando "su"?
E' forse un problema di variabili d'ambiente settate male?


L'errore che mi viene riportato è questo:

Codice: Seleziona tutto

make[1]: Entering directory `/home/sim/codelite_proj/fltk_proj/prova_fltk'
g++ -c  "/home/sim/codelite_proj/fltk_proj/prova_fltk/Search_win.cpp" -g -O2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_THREAD_SAFE -D_REENTRANT  -o ./Debug/Search_win.o "-I." "-I/usr/include/" 
g++ -c  "/home/sim/codelite_proj/fltk_proj/fltk_magic/Db_Access.cpp" -g -O2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_THREAD_SAFE -D_REENTRANT  -o ./Debug/fltk_magic_Db_Access.o "-I." "-I/usr/include/" 
g++ -c  "/home/sim/codelite_proj/fltk_proj/prova_fltk/main.cpp" -g -O2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_THREAD_SAFE -D_REENTRANT  -o ./Debug/main.o "-I." "-I/usr/include/" 
gcc -c  "/home/sim/codelite_proj/fltk_proj/prova_fltk/sqlite3.c" -g -O2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_THREAD_SAFE -D_REENTRANT  -o ./Debug/sqlite3.o "-I." "-I/usr/include/" 
g++ -o ./Debug/prova_fltk ./Debug/main.o ./Debug/Search_win.o ./Debug/fltk_magic_Db_Access.o ./Debug/sqlite3.o  "-L."   -L/usr/lib64 -lfltk -lpthread -ldl -lm -lXext -lX11
/usr/lib64/gcc/x86_64-slackware-linux/4.4.4/../../../../x86_64-slackware-linux/bin/ld: skipping incompatible /usr/lib64/libfltk.a when searching for -lfltk
/usr/lib64/gcc/x86_64-slackware-linux/4.4.4/../../../../x86_64-slackware-linux/bin/ld: skipping incompatible /usr/lib64/gcc/x86_64-slackware-linux/4.4.4/../../../libfltk.a when searching for -lfltk
/usr/lib64/gcc/x86_64-slackware-linux/4.4.4/../../../../x86_64-slackware-linux/bin/ld: skipping incompatible /usr/lib64/libfltk.a when searching for -lfltk
/usr/lib64/gcc/x86_64-slackware-linux/4.4.4/../../../../x86_64-slackware-linux/bin/ld: cannot find -lfltk
/usr/lib64/gcc/x86_64-slackware-linux/4.4.4/../../../../x86_64-slackware-linux/bin/ld: skipping incompatible /usr/lib64/libpthread.so when searching for -lpthread
/usr/lib64/gcc/x86_64-slackware-linux/4.4.4/../../../../x86_64-slackware-linux/bin/ld: skipping incompatible /usr/lib64/libpthread.a when searching for -lpthread
collect2: ld returned 1 exit status

Avete qualche idea?

Grazie.

Ciao

Sim

Re: errore linking librerie fltk su slackware 13.1 multilib

Inviato: ven 29 ott 2010, 0:36
da freefred
sim ha scritto:
Ma cosa carica il comando "su"?
E' forse un problema di variabili d'ambiente settate male?

Mah..la butto un po' li' perche' ho quasi zero conoscenza di 64 bit..

Il su (il login bene o male) nella Slack dovrebbe far riferimento all' /etc/login.defs, anche se in realta'
direi a seconda di eventuali opzioni con cui viene lanciato.
Potrebbe in effetti cambiarti o forse "resettare" delle variabili d'ambiente che magari hai o sono state cambiate.
Ma appunto la butto li' perche' probabile tu ne sappia piu' di me:-)

bye

Re: [RISOLTO] errore linking librerie fltk slackware 13.1 mu

Inviato: dom 5 dic 2010, 0:57
da sim
Ciao a tutti.
Sembra che tutto sia andato a posto quando ho cambiato le variabili LANG dall'inglese U.S.A. all'italiano in /etc/profile.d, nei file lang.sh e lang.csh, come spiegato in S4d. Le avevo cambiate per avere i menù in italiano in xfce.
Mah!

Grazie a tutti.

Ciao