[C++/SDL_ttf] VC6 lib onder Dev-C++

Pagina: 1
Acties:

  • mpegernie
  • Registratie: November 2000
  • Laatst online: 12-03-2016
Ik ben een beginnend C++ programmeur en probeer met Dev-C++ de SDL en SDL_ttf packages draaiende te krijgen.

SDL werkt nu nadat ik op Cone 3D progr. de juiste files en instellingen voor Dev-C++ heb gevonden.

Maar met de SDL_ttf library heb ik minder succes. ik krijg tijdens het compilen errors over "undefined references to 'TTF_....".
ik ben een redelijke c++ n00b maar ik denk het probleem terug te hebben herleidt op het ontbreken van een library van SDL_ttf (iets als libSDL_ttf.a) in de Lib directory. Ik heb wel een library maar die is voor VC6 (SDL_ttf.lib).
( parameters als -lSDL_ttf meegeven aan de compiler heb ik dus al wel geprobeerd maar de lib ontbreekt... De include files vind hij dus wel)

Ik las over iemand met een dergelijk probleem met de SDL_net package op sourceforge maar daar kan ik geen oplossing vinden. Hij heeft het wel over het compileren van een DevC++ lib uit de VC6 lib. kan dat?

Kan iemand met wat meer inzicht me iets meer vertellen over mijn probleem en mss kan iemand me zelfs helpen of me de goede kant opschoppen?

"The Major advances in civilization are processes that all but wreck the societies in which they occur." -A. N. Whitehead


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 04:06

.oisyn

Moderator Devschuur®

Demotivational Speaker

Je zult een lib moeten bouwen uit de source files. Bevat die lib alleen referenties naar de dll? Als dat zo is zou je er ook wel een moeten kunnen genereren, maar ik weet niet of mingw daar tooltjes voor heeft...

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • mpegernie
  • Registratie: November 2000
  • Laatst online: 12-03-2016
.oisyn schreef op 02 September 2003 @ 19:03:
Je zult een lib moeten bouwen uit de source files.
schoot mij in tussentijd ook te binnen. ik heb hier totaal geen ervaring mee maar ik zat te denken dat er toch niet voor niets een source beschikbaar is. :)
Bevat die lib alleen referenties naar de dll? Als dat zo is zou je er ook wel een moeten kunnen genereren, maar ik weet niet of mingw daar tooltjes voor heeft...
Ik weet niet precies wat je bedoelt maar ik denk het wel. Voor de SDL.dll waren naast een zooi includes de Lib files libSDL.a, libSDL.la en libSDLmain.a beschikbaar.
De SDL_TTF package kwam alleen met een SDL_ttf.dll, enkele includes en een VC6 lib.

Maar ik zal eens zien wat deze n00b met de source van SDL_TTF kan.

Bedankt

edit (1)
Met de srouce van SDL_ttf kan ik op het moment niet zoveel, geen id waar ik moet beginnen en de readme is gericht op linux gebruikers (./configure, make)

edit (2)
ik vond in de FAQ van MinGW iets over het gebruik van MSVC DLL voor MinGW en vice versa. Ik ga hier even mee bezig

[ Voor 41% gewijzigd door mpegernie op 02-09-2003 19:54 ]

"The Major advances in civilization are processes that all but wreck the societies in which they occur." -A. N. Whitehead


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 04:06

.oisyn

Moderator Devschuur®

Demotivational Speaker

In een dll staan alle functies die je op 2 manieren kunt gebruiken. Je kunt de DLL handmatig via code inladen (met LoadLibary) en dan de functieadressen opvragen (met GetProcAddress). Dat heet run-time dynamic linking. Een andere optie is om windows automatisch de DLL te laten laden, en alle functies die je gaat gebruiken op te zoeken en in een bepaalde tabel te zetten (de IAT, Import Address Table). Dit heet load-time dynamic linking.

Bij load-time dynamic linking wijzen de functies eigenlijk naar entries in de IAT, waar vervolgens instructies staan om te springen naar het juiste adres. Een lib file definieert zo'n IAT, zodat de compiler de functies kan vinden tijdens het linken. Maar omdat dit het enige is wat meestal in zo'n lib staat, is het ook makkelijk te genereren uit een DLL file. En dus denk ik dat mingw (Dev-C++) een tooltje heeft om een soortgelijke .a file te genereren uit een DLL

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • mpegernie
  • Registratie: November 2000
  • Laatst online: 12-03-2016
w00000t, reimp.exe gedowned via het artikel in de MinGW FAQ, in de bin dir van DevC++ gezet (het heeft dlltool die daar staat nodig) en losgelaten op de MSVC lib. Deze poept een GCC .a file uit.

Nu gaat het compilen zonder probs. Ik doe nog niet veel meer dan TTF_Init en TTF_Quit aanroepen maar dat waren juist de regels die undefined references opleverden, ik neem aan dat er nu geen problemen meer zijn.

.oisyn bedankt voor de schop richting "MinGW tooltjes" ;)

edit, had je laatste reactie nog niet gelezen. denk dat ik je verhaal wel in grote lijnen snap. en idd, dat tooltje heb ik dus gevonden

[ Voor 27% gewijzigd door mpegernie op 02-09-2003 20:23 ]

"The Major advances in civilization are processes that all but wreck the societies in which they occur." -A. N. Whitehead