Tags:
programmering
Hej udviklere
Hvordan laver man sin egen library fil, med egne funktioner, som f.eks std::cout osv.
Jeg har virkelig ingen anelse..
Håber i kan hjælpe!
~Jakob
Hehe compileren er det egentlig ikke bare g++.exe?
Nå men anyways:
IDE: CodeBlocks
Platform: Windows (med hvorfor er det vigtigt når jeg selv vil lave sådanne funktioner?)
1: Tak for det med codeblocks, men egentlig er det jo bare en ressource fil..?
2: Forstår ikke helt indholdet af dit link... hvorfor har jeg brug for en header? det han laver er jo bare det samme som en .c fil..?
3: Hvad er en funktion som "std::cout" så?
4: hvad er .o filer?
5: er .a filer ikke ét static library?
1: Nej, det er ikke bare en ressource fil.
2: Hvis du har to .cpp filer, og i den ene har en funktion:
void Pop()
{
}
Og vil kalde den fra den anden .cpp fil, skal den anden .cpp fil vide hvordan funktionen ser ud, enten ved at kunne se selve funktionen, eller ved at have en prototype.
Da selve funktionen er i en .cpp fil lave vi en prototype i en header fil:
void Pop();
Denne header fil inkluderes så i begge .cpp filer.
Dette er det samme, uanset om din funktion er i en cpp fil der er del af samme project/program eller det er fra et bibliotek.
Header-filer indeholder normalt typer/classer og prototype, samt erklæring af globale variable.
3: std::cout er et objekt, en variabel. Der findes en type og en erklæring af den i header-filen iostream. Selve objektet og de funktioner der hører til objektet befinder sig (normalt) i et bibliotek som compileren automatisk linker med når du bygger programmet.
4: Normalt bliver en .cpp fil oversat til .o fil, en .o fil kaldes også en objekt fil. Hvis dit program kun indeholder én .cpp fil ser du oftest ikke .o filen.
5: En .a fil er et bibliotek/library. En .a fil indeholder et antal .o filer, fra 1 til ufatteligt mange. Normalt siger man at en .a fil er et static library.
Håber det kastede lidt lys over sagen.
Rigtig mange tak!
Men er .a filer så ikke en mappe?! eller "linker" den bare til de .o filer
Og er .o filer ikke det selve .exe filen bliver bygget ud fra?
.a filerne er statiske filer som, sammen med objekt modulerne (de forskellige kildekode filer, lavet om til objektfiler), bliver sat sammen med linkeren og smidt ud som et endeligt objektprogram (her .exe filen).
En .a fil er blot en samling af .o filer, man kalder også .a filer for arkiv-filer, deraf '.a' Man bruger en "archiver" til at samle .o filerne til en .a fil.
En exe fil bliver lavet af en række .o filer og .a filer.
Mange tak!
Nogen flere:
1: Hvad er en linker
2: Hvad er en debugger
3: hvordan laver man en compiler
4: (noget forholdsvis andet) Jeg vil gerne igang med simple spil! ikke noget med 3d eller noget "bare" 2d til spil som f.eks.: Dam, Skak osv. Hvad skal jeg studere? D3D? OpenGL? Jeg vil gerne have det hele ind i en Win32GUI.