Gå til innhold

lage bibliotek under linux


Anbefalte innlegg

Skrevet

Hvordan kan eg lage mitt egent biblitek under linux.?

 

Dersom eg har en cpp fil som inneholder en standard helloWorld() så skulle det vel gå å lage et bibliotek av denne.

 

Slik at eg kan lage et annet program

 

#include <hello.h>

 

main(){

Hello();

}

 

 

Og dette kompileres vel da noe slik:

gcc test.cpp -o prog -lhello

 

 

Men lurer på hvordan biblioteket kan lages?

Videoannonse
Annonse
Skrevet (endret)

Hmmm... dette er så lenge siden. Men statisk bibliotek trodde jeg man kunne lage slik....

 

$ gcc -c hello.c

$ ar r libtest.a hello.o

$ gcc -L ./ -ltest main.c -o test

/tmp/ccIVa2a0.o: In function `main':

main.c:(.text+0x12): undefined reference to `hello'

collect2: ld returned 1 exit status

 

Men dette funker:

$ gcc hello.o main.c -o test

$ ./test

Hello world

 

main.c

void hello();

int main(){
hello();
return 0;
}

 

hello.c

#include <stdio.h>

void hello(){
 puts("Hello world");
}

Endret av JBlack
Skrevet

Hvis du skal ha et statisk bibliotek, dvs. en .a-fil, bruker du ar, f.eks. slik:

ar rcs mittbibliotek.a objektfilen.o objektfilto.o objektfiltre.o

 

Om du skal lage et delt bibliotek, dvs. en .so-fil, er det litt mer du må gjøre. Du kan lese denne HOWTO-en for en grundigere forklaring.

Skrevet

Eventuelt kan du gjøre det enkelt ved å bruke SCons.

 

SConstruct-fil:

env = Environment()
env.SharedLibrary('mittbibliotek', ['jabba.cpp', 'dabba.cpp', 'doo.cpp'])

 

$ scons

Dette lager et delt bibliotek ved navnet mittbibliotek.so. Eventuelt kan man bruke "env.StaticLibrary(...)" hvis man vil ha et statisk bibliotek.

Skrevet
Eventuelt kan du gjøre det enkelt ved å bruke SCons.

 

SConstruct-fil:

env = Environment()
env.SharedLibrary('mittbibliotek', ['jabba.cpp', 'dabba.cpp', 'doo.cpp'])

 

$ scons

Dette lager et delt bibliotek ved navnet mittbibliotek.so. Eventuelt kan man bruke "env.StaticLibrary(...)" hvis man vil ha et statisk bibliotek.

8438881[/snapback]

 

sCons ser jo kjempebra ut :)

Skrevet
Det er kjempebra. :)

Ganske stilig hvordan SConstruct-fila mer eller mindre er et Python skript også. (Nesten ihvertfall). Heh.

 

http://www.scons.org hvis du ikke allerede har vært innom der..

8441039[/snapback]

 

Var den sida eg søkte opp ;)

Får ta og oppdatere makefiler for openGL scengraf prosjektet mitt etter hvert.

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...