2015-04-06, 11:55
  #1
Medlem
Hej! Jag skulle vilja kunna kompilera mina C++-projekt till körbara EXE-filer, och köra på en annan dator (samma platform), utan att den andra datorn har alla bibliotek installerade. Om man gör något simpelt hello world-program räcker det ju med exe-filen, men så fort man använder sig av lite icke-standard-bibliotek så kommer det bli fel.

Grabbarna som programmerar Ocarina Of Time 2D (länk) packar ihop allting så att du får en mapp med en exe-fil och en massa .dll-filer, vilket gör att programmet kan köras rätt av. Eller serial-programmet Termit (länk) till exempel, där är det endast en exe-fil som man kör igång, utan några som helst .ddl-filer, hur fungerar det?

Har googlat lite (antagligen inte tillräckligt bra ), så om någon skulle kunna ge mig några pointers så skulle det uppskattas stort! Jag använder mig av windows 7, och codeblocks, mingw.

Mvh D
Citera
2015-04-06, 12:18
  #2
Medlem
bithaxs avatar
Lösningen i så fall är att kompilera in biblioteken i ditt program.
För att göra detta måste du ha tillgång till källkoden för biblioteken du vill använda. Har du det?

I övrigt går det att få bort de extra dll filerna som mingw genererar med hjälp av flaggor till kompilatorn, typ -static-libgcc -static-libstdc++ eller något sådant.
__________________
Senast redigerad av bithax 2015-04-06 kl. 12:21.
Citera
2015-04-06, 12:24
  #3
Medlem
Hmm, jag tror det. Jag tänker använda mig av open source-bibliotek så som OpenCV. Det man laddar ner har ju massa .cpp och include-filer, samt några .dll, är det det du menar?

Ska kolla upp det där med flaggorna du nämnde, tack
Citera
2015-04-06, 12:38
  #4
Medlem
bithaxs avatar
Citat:
Ursprungligen postat av Rasnafd
Hmm, jag tror det. Jag tänker använda mig av open source-bibliotek så som OpenCV. Det man laddar ner har ju massa .cpp och include-filer, samt några .dll, är det det du menar?

Ska kolla upp det där med flaggorna du nämnde, tack

Ett litet exempel på statisk och dynamisk länkning av bibliotek jag hittade.
Det är dock om hur du gör dina egna, men det är bra att veta hur det fungerar.
http://www.codeproject.com/Articles/...amic-Libraries
Citera
2015-04-13, 15:32
  #5
Medlem
Diamondgrits avatar
Man kan göra som bithax säger och länka statiskt, eller så kan man välja att länka dynamiskt dvs. man skickar med de .dll som behövs som i Zeldaspelet du nämnde.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in