View Full Version : c++ - integrare libreria linux .a
Scrivendo con gedit del codice c++ basato su una libreria aggiuntiva. Come si può compilare il codice da terminale integrando la libreria?
Grazie in anticipo
Cait Sith
30-11-2013, 23:05
Un .a è sostanzialmente un archivio di oggetti compilati, per integrare la libreria basta linkarla: se la libreria si chiama libintegration.a devi scrivere nella comando di linking -lintegration (le lettere i e b prima di integration vanno omesse)
esempio:
gcc -o program file1.o file2.o -lintegration
Se la libreria non si trova nella directory dove stai compilando devi aggiungere la path con -L/path_libreria
quindi diventa:
gcc -o program file1.o file2.o -L/path_libreria -lintegration
Su internet si trova gratuitamente un libro che si chiama advanced linux programming, nei capitoli 1-2 spiega come compilare a riga di comando, come creare librerie statiche e dinamiche e come linkarle.
intanto grazie,
avendo un file chiamato 1.cpp nella stessa cartella della libreria chiamata xp.a cosa si deve dare da terminale per compilare?
Cait Sith
01-12-2013, 11:09
Per prima cosa compili il tuo codice
gcc -c 1.cpp
così ti trovi un oggetto compilato di nome 1.o.
Se gli include della libreria non sono nella stessa directory di 1.cpp devi specificarla a parte con -I/path_include_libreria, quindi diventa:
gcc -c 1.cpp -I/path_include_libreria
Poi devi creare il programma chiamando i linker che mette insieme il tuo oggetto con quello della libreria.
Se hai tutto nella stessa cartella dovresti fare:
gcc -o nome_programma 1.o xp.a
il -l su xp.a non lo usi perchè il nome della libreria non è standard (non comincia per lib)
Cait Sith
01-12-2013, 11:56
scusa, io sono abituato ad usare il gcc, ma se hai codice c++ devi usare il g++ :doh:
in tutti i messaggi precedenti sostituisci g++ a gcc
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.