Newsgroup: it.comp.os.linux.development
Titolo: [gnu-bie] Ambienti di sviluppo e librerie

Salve,
da un paio di giorni ho iniziato a verificare la programmazione sotto Linux
(SuSE 7.1) e, da specifiche, devo usare le librerie Gtk/Gdk.
Sono abituata male, provengo da MsDevStudio e subito ho cercato un Ide che
mi consentisse di gestire progetti potendone anche scrivere librerie.
Mi sono orientata su Kdevelop, dopo aver provato Anjuta.
Ho apprezzato subito la scorrelazione tra ambiente e compilatore (non mi era
mai capitato di riuscire a compilare, al primo colpo, lo stesso progetto in
due ambienti differenti!): veramente semplice rintracciare le librerie di
sistema, ottima portabilita` dei sorgenti.
Ma ho notato un approccio che non mi risulta famigliare, comune sia ad
Anjuta che a Kde: entrambi, quando voglio inserire in un progetto un
riferimento ad una mia libreria sorgente 'esterna' (che non appartiene al
progetto, ma che magari e` un progetto a sua volta), ricopiano il file nella
cartella del progetto attuale. E non e` bello.
Insomma, non sono riuscita a inserire nel processo di compilazione un file
'esterno'.
Temo poi che, modificando 'a mano' il makefile (credo di aver capito che si
debba modificare la versione .am), l'ambiente in seguito me lo sovrascriva.
Sospetto di non aver compreso bene un qualche meccanismo 'fondante' di
Linux, sotto questo punto di vista.
Alla fine vorrei poter ottenere riferimenti per la compilazione sia a
sorgenti esterni (es. .c), sia a compilati esterni (es. .o)  che a librerie
(dinamiche o statiche).
Per le librerie, leggendo qualche thread qui sotto, ho intuito che e`
necessario agire su una variabile d'ambiente. Ok.
Ma per il resto?
Se qualcuno potesse aiutarmi per bruciare qualche tappa, gliene sarei grata.
susanna

 necessario agire su una variabile d'ambiente. Ok.
Dalla mia esperienza (poca) sui programmi Java+JNI, che usano librerie
esterne (scritte in C, appunto)... ecco quel che posso dirti:
Creazione di una shared library da programma C:
gcc -shared -I/...<path degli include, nel mio caso jdk../include e
jdk../include/linux> <nome funzione C> -o <nome libreria>
facendo attenzione che il nome della libreria, in Linux come in Solaris,
inizi per "lib" ed abbia estensione ".so".
Per poi poter usare questa libreria, il suo path deve essere inserito in
quello della variabile d'ambiente LD_LIBRARY_PATH, in questo modo:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/..<path della libreria>
Spero di non essere andato "fuori tema" e di averti aiutato...
altrimenti... scusa l'intervento ;-p
Ciao,
    Zar.
PS:
Ovviamente chi incontrasse errori in quel che dico... me lo faccia sapere:-)


"zArAle" <Z...@IPAD.it> ha scritto nel messaggio news:Rhhr8.122678$%
: "susanna" ha scritto
:
: > [..] e subito ho cercato un Ide che [..]
<cut>
: Ciao,
:     Zar.
Grazie, zar.
Ma ancora non riesco a compilare files (sorgenti) che risiedono in cartelle
differenti da quella del progetto corrente.
Vedro` di sperimentare i link simbolici, porli nella cartella del progetto
corrente e agire sul 
makefile.am
 per impostare la modalita` ricorsiva di
compilazione sulle cartelle figlie.
Anche se non ho idea di come fare... Mi pare di aver capito che i
makefile.am
 abbiano la 'loro' sintassi. Che patello, pero`!
susanna

 Vedro` di sperimentare [..]
Brava!
Purtroppo non so aiutarti in questo... :-(
Ciao,
    Zar.