Citat:
Ursprungligen postat av
Linguas
Det jag stör mig lite på är de där biblioteken som skrivs högst upp i filen. Jag skapade ett nytt skript i linux som var menat att ladda ner en text-fil på min server till datorn me dmålet att det ska funka i både linux och windows. När jag skulle omvandla den till en .exe fil så fick jag felmeddelande om att <windows.h> och <urllib.h> saknades. Efter att ha sökt runt fick jag reda på att dessa inte går att ladda ner utan endast finns i VC++ till Windows. Jag försökte en annan variant och fick då istället att curllib saknades...
För att förstå C++ är det viktigt att förstå att C++ skiljer sig en hel del mot andra språk. Om man tar språk som Java eller C#, de här språken har ett jättebibliotek med funktionalitet som "följer med". Om man gör ett program i C# och det skall köras på en dator som måste man
också installera bibliteket som finns i språket (i fallet C# är det runtimen för de språket, java har sin runtime). Installeras inte dessa kan man inte köra program i Java eller C#
Så fungerar inte C++, C++ har inget stort bibliotek som följer med. Det är bara programmet och så är det klart.
Nackdelen men den tekniken är att man behöver vara medveten om vad man kommer använda på respektive operativsystem. Windows har sina grejjer, Linux har sina.
Kompilatorn har en mycket central roll i utvecklandet i C++ applikationer, inget annat språk har en så komplex kompilator som De kompilatorer som finns för C++ och det är viktigt att förstå. Det är kompilatorn som kommer generera det som körs på respektive operativsystem. Det kan låta självklart men man bör förstå vad det innebär. Alla operativsystem har funktionalitet som applikationer använder sig av. Skall man öppna en fil, öppna fönster, allokera minne. Då måste applikationen anropa operativsystemet. Hur det skall göras behöver man
"berätta för kompilatorn". Och när du inkluderar olika header filer, exmepelvis "windows.h". Det är i de här filerna som kompilatorn får information om hur den skal göra för att anropa olika saker i operativet.
Genom att berätta för kompilatorn samt att C++ har något som kallas för preprocessor. preprocessorn gör att man kan få kompilatorn att kompilera olika beroende på hur man definerat namn för preprocessorn. På det viset kan man kompilera upp ett program för olika operativsystem. Skall man göra programmet till windows kan man ställa in det via preprocessorn, skall man kompilera för linux kan man ställa in det.
Det viktiga att förstå är att man måste berätta för kompilatorn vad allt är och det görs i headerfilerna. Detta slipper man i andra språk som har massiva jättebibliotek som man måste skeppa med om ens applikation skall köras på datorn