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...
Använder du ett bibliotek som inte finns bland
C++ inbyggda, måste det finnas en version för alla system du tänker kompilera för. Och om du inte kompilerar statiskt, med -static i g++ och något menyval någonstans i VC++, måste dessutom biblioteket finnas på datorn hos alla användare som kör programmet.
windows.h innehåller funktioner helt specifika för Windows, och finns inte för Linux. Skriv om koden och byt ut alla funktioner som du har använt från det biblioteket, mot funktioner från
något mer generellt bibliotek.
Boost verkar vara populärt i C++ och smockat med lite allt möjligt.
Här finns curl.
Citat:
Ursprungligen postat av
Linguas
Alltså, vad är det här? Fungerar program som skapats i Linux endast i Linux? Det blir ganska problematiskt för mig isåfall som sitter i linux men vill skapa program för främst windows...
Ett programfil som kompilerats
för Linux fungerar bara i Linux. Kompilera en EXE för varje system du ska köra programmet på, t.ex. en Linux- och en Windows-EXE. Men det går att krosskompilera, så att man t.ex. inte behöver en Windowsdator för att skapa ett Windowsprogram. Kolla
http://www.cplusplus.com/forum/unices/70416/#msg379170...
...eller bespara dig själv mycket installationer och komplikationer, och installera
Cygwin, som kör Linuxprogram (egentligen POSIX, som är samlingsnamnet för Linux, Mac OS X, UNIX m.m.) under Windows. En användare som ska köra programmet behöver inte hela Cygwin, bara cygwin1.dll, som du kan skicka med EXE:n.