Zanima me kako se prave biblioteke u C-u posto me mrzi da svaki cas opet kucam neke funkcije i josh neke zaje*ancije.
Pravljenje modula ili biblioteka u C-u
Zaključano
Zakačeno
zavisi kakve ti biblioteke trebaju. Imas staticke i dinamicke( dll). Staticke se za vrijeme povezivanja( linkovanja) modula povezu sa tvojim kodom u jedan izvrni fajl, dok dinamicke biblioteke su u *.dll obliku, odnosno njih moze da poziva svaka aplikacija kojoj su potrebne funkcije iz te biblioteke.
Vjerovatno su ti potrebne samo staticke biblioteke. One su *.a ekstenzije kod gcc-a, a *.lib kod ms-ovih i borlandovih kompajlera( ako me sjecanje ne vara).
E sad kako ces napraviti staticku biblioteku zavisi i od okruzenja koje koristis. Vecina okruzenja podrzava pravljenje statickih biblioteka, pa vjerovatno i tvoje. Naravno, ne smijes da pises main funkciju jer ovo nije izvrsni fajl, vec samo biblioteka, odnosno set funkcija. Kad napravis tu svoju aplikaciju, na kraju bi trebao da imas *.a( ili *.lib) datoteku i jednu ili vise *.h datoteka( u zavisnosti koliko si ih napisao, jer su ti potrebne deklaracije funkcija za kasnije projekte).
Pozdrav!
Vjerovatno su ti potrebne samo staticke biblioteke. One su *.a ekstenzije kod gcc-a, a *.lib kod ms-ovih i borlandovih kompajlera( ako me sjecanje ne vara).
E sad kako ces napraviti staticku biblioteku zavisi i od okruzenja koje koristis. Vecina okruzenja podrzava pravljenje statickih biblioteka, pa vjerovatno i tvoje. Naravno, ne smijes da pises main funkciju jer ovo nije izvrsni fajl, vec samo biblioteka, odnosno set funkcija. Kad napravis tu svoju aplikaciju, na kraju bi trebao da imas *.a( ili *.lib) datoteku i jednu ili vise *.h datoteka( u zavisnosti koliko si ih napisao, jer su ti potrebne deklaracije funkcija za kasnije projekte).
Pozdrav!
Potpis
Izvini ali da li mozes da mi napises neki primer za to posto nisam siguran da sam te bash razumeo. Hvala
pa na primjer napravis jedan static library projekat( npr. dev-cpp) i u njega dodas func.h i func.cpp fajlove.
E, kad ovo kompajliras dobices *.a fajl( to je u stvari staticka biblioteka).
Sad ovu biblioteku mozes koristiti u drugim projektima, tako sto ces je linkovati sa nekim drugim modulima i bibliotekama.
Pronadji malo vise informacija na net-u.
Pozdrav!
Code:
//func.h
//deklaracije funkcija
int func(int a);
//func.h
//deklaracije funkcija
int func(int a);
Code:
//func.cpp
#include "func.h"
int func(int a){
return 0;
}
//func.cpp
#include "func.h"
int func(int a){
return 0;
}
E, kad ovo kompajliras dobices *.a fajl( to je u stvari staticka biblioteka).
Sad ovu biblioteku mozes koristiti u drugim projektima, tako sto ces je linkovati sa nekim drugim modulima i bibliotekama.
Pronadji malo vise informacija na net-u.
Pozdrav!