Jag har ett gäng objektfiler (.o) som jag skulle vilja göra om till ett "statically linked library" (.a). Hur gör jag detta? Använder g++ i SuSE Linux 6.4. Hur länkar jag med detta library när jag väl har skapat det?
* Orkar inte läsa massa man sidor * ;)
SweyMedlem sedan apr. 20003 971 inlägg Ja, jättesvår. ;)
Det bästa (eller enda) sättet att göra det du vill är att skapa en fil som du kallar Makefile och lägger i katalogen med källkoden. I den filen skriver du hur ditt projekt ska kompileras. För att sedan kompilera startar du kommandot make från din projekt-katalog.
Tyvärr har jag aldrig skrivit en egen Makefile och har därför ingen aning om hur den ska se ut. Sök på Internet efter någon referens. Jag återkommer om jag hittar någon.
------------------
- Swey
Skriv först, tänk sen!
Det är inte det ändå sättet. Makefilen har inget med saken att göra. Men _hur_ gör jag en .a fil av objektfilerna (vilka parametrar skickar jag till GCC)? Det är min fråga.
SweyMedlem sedan apr. 20003 971 inlägg Makefilen har inget med saken att göra.
Förutom att den beskriver hur projektet ska kompileras.
Testa "gcc -shared dinafiler"
------------------
- Swey
Skriv först, tänk sen!
adde2Medlem sedan maj 2000144 inlägg Kanske är offtopic nu men om någon ville ha en makefile tutor så finns en på svenska här: http://www.ida.his.se/ida/~a98gunbu/Programmeringsmetodik/maketut/MakeTutorial.ps
och exempel på http://www.ida.his.se/ida/~a98gunbu/Programmeringsmetodik/maketut/ExMakefile
------------------
Ytterligare en pajsare utan fruktan som jönsar vidare
jsundinMedlem sedan aug. 200086 inlägg Muzzafarath.. det här funkar för mig:
gcc -c enfil.c -o enfil.o
ar ru ettlib.a enfil.o entillfil.o (etc)
ranlib ettlib.a
Kolla man "ar" och "ranlib"
Och, nejdå, en Makefile behövs inte, men den hjälper om du arbetar med många filer.
/Joh