webForumDet fria alternativet

Göra .a fil

6 svar · 493 visningar · startad av Muzzafarath

MuzzafarathMedlem sedan apr. 20002 487 inlägg
#1

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 * ;)

MuzzafarathMedlem sedan apr. 20002 487 inlägg
#2

Är min fråga jättesvår?

SweyMedlem sedan apr. 20003 971 inlägg
#3

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!

MuzzafarathMedlem sedan apr. 20002 487 inlägg
#4

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
#5

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
#6

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
#7

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

134 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)