[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [linux_var] [solved] Errore in fase di linking



On Tue, Feb 12, 2008 at 09:57:14PM +0100, Aladino wrote:
> 1) Cosa sono i .la?

Sono i file di libreria generati da libtool:

% file /usr/lib/sane/libsane-epson.la
/usr/lib/sane/libsane-epson.la: libtool library file

Mentre i file .a sono le librerie "nude e crude", ovvero i file .o
impacchettati in un archivio ar (come tar ma più brutto):

% file /usr/lib/libmad.a
/usr/lib/libmad.a: current ar archive
% ar t /usr/lib/libmad.a
version.o
fixed.o
bit.o
timer.o
...

URL consigliato:

  http://www.gnu.org/software/libtool/manual.html#Linking-libraries

> 2) come posso scrivere un makefile che riconosca su che tipo di
> architettura si trova e setta la flag -m64 o -m32 correttamente?

È compito di autoconf/automake.  In teoria non dovresti scrivere il
Makefile direttamente ma dovresti fare un Makefile.in che contiene delle
macro M4 (ewwww) che generano il Makefile vero e proprio.

In pratica al tuo programma manca la fase di "configure" (quasi sempre
realizzata con autoconf) che genera il Makefile con i parametri giusti
in base al sistema in cui si trova.  Questo vuol dire che gestisce anche
compilatori diversi da gcc che potrebbero avere (hanno) flag diverse da
-m32 e -m64.

Ciao,

-- 
  Fernando Vezzosi
	       3F29 4D20 510E E1AE 991D  3B12 D6BE 7C05 B289 97C9

Attachment: signature.asc
Description: Digital signature