Problem linking gstream (Allegro library)

Started by
1 comment, last by Harry de Man 19 years, 1 month ago
Hi, I've downloaded the gstream DevPak (I'm using Dev-C++) to use with Allegro. In theory, everything should work fine, as I have updated gcc/c++ to the latest version. However, when I try to compile the example that went with the gstream DevPak (with the -lgstrm switch to link correctly to the gstream library), I get about 200 linker erros, describing undefined references to <whatever>function. Does anyone have the same problem, and/or might know a solution to this?
Advertisement
Try this. I just downloaded that library for GCC 3.4 as well as Allegro.

1. Link with:
-lgmon-lgstrm-lalleg
Only way I knew for the -lgmon, which I have no idea what it means, was guess and check while linking. I just tried it b/c it started with a 'g' [lol]

2. Example:
#include <gstream.h>     // note: you can use <gstream.h> if you preferint WINAPI WinMain (HINSTANCE hThisInstance,                    HINSTANCE hPrevInstance,                    LPSTR lpszArgument,                    int nFunsterStil)  {   allegro_init();       // you have to initialise Allegro and in be in a   if (set_gfx_mode(GFX_AUTODETECT, 320, 200, 0, 0) < 0) // graphical mode     return 1;   gstream gs;           // construct gs, which will draw on the screen   gs << "Hello world!"; // print string with default settings   gs << flush;          // gstreams are buffered so remember to flush   system("pause");   return 0;  }


This is my first time using this, so I don't know the proper way to wait for a keypress, so you will have to use the windows key to get out of the program and close it via the console window. However, you should not get linker errrors [smile] I also noticed that I could not get it to work with int main() so that is something else you will need to look into.

- Drew
Thanks a lot for your help! It appeared the order of linking is important here: the gstream library must be linked before linking to Allegro.
I feel like a n00b, thinking the order of linking didn't matter. [grin]

Anyway, it also appeared that using the -gmon switch wasn't needed, since that library doesn't belong to the gstream DevPak; only libgstrm.a is needed.

Also, I got it to work flawlessly with int main() without any exotic actions. The only thing that seems to matter is that you use the -lgstrm prior to -lalleg.

Again, thanks for your help! Ratings++...

This topic is closed to new replies.

Advertisement