Allegro.cc - Online Community

Allegro.cc Forums » Programming Questions » AGUP

This thread is locked; no one can reply to it. rss feed Print
AGUP
moon_rabbits
Member #8,469
March 2007
avatar

Take a look at this source:

1#include <allegro.h>
2#include <stdio.h>
3#include "agup\agup.h"
4 
5MENU file_child[] =
6{
7 { "&New", NULL, NULL, 0, NULL },
8 { "&Load", NULL, NULL, 0, NULL },
9 { "&Save", NULL, NULL, 0, NULL },
10 { "", NULL, NULL, 0, NULL },
11 { "&Quit", NULL, NULL, 0, NULL }
12};
13 
14MENU edit_child[] =
15{
16 { "&Resize", NULL, NULL, 0, NULL },
17 { "&Tileset", NULL, NULL, 0, NULL },
18 { "&Name", NULL, NULL, 0, NULL }
19};
20 
21MENU about_child[] =
22{
23 { "&About", NULL, NULL, 0, NULL },
24 { "&Help", NULL, NULL, 0, NULL }
25};
26 
27MENU main_menu[] =
28{
29 { "&File", NULL, file_child, 0, NULL },
30 { "&Edit", NULL, edit_child, 0, NULL },
31 { "&About", NULL, about_child, 0, NULL }
32};
33 
34DIALOG the_dialog[] =
35{
36 /* (dialog proc) (x) (y) (w) (h) (fg) (bg) (key) (flags) (d1) (d2) (dp) (dp2) (dp3) */
37
38 { d_clear_proc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL },
39
40 { d_menu_proc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, main_menu, NULL, NULL },
41
42 { NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL }
43};
44 
45int main() {
46 allegro_init();
47 set_color_depth(16);
48 set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0);
49 install_keyboard();
50 install_mouse();
51 agup_init(agtk_theme);
52 gui_fg_color = makecol(0, 0, 0);
53 gui_mg_color = makecol(128, 128, 128);
54 gui_bg_color = makecol(230, 220, 210);
55 set_dialog_color (the_dialog, gui_fg_color, gui_bg_color);
56 do_dialog(the_dialog, -1);
57 agup_shutdown();
58 return 0;
59}
60END_OF_MAIN()

All it does is create a menu. However, when I tried to use AGUP, I get a bunch of linker errors:

Quote:

[Linker error] undefined reference to `agtk_theme'
[Linker error] undefined reference to `agup_init(AGUP_THEME const*)'

..and so on. Is there a library that I can link to my project for agup? Because I cannot seem to find one.

Tero Laxström
Member #2,589
July 2002
avatar

If you have the source version of this library, build it first. Then you should be able to link with it.

--
tlax

moon_rabbits
Member #8,469
March 2007
avatar

I have no idea how to build a library, I've always used DevPaks.

I found an agup devpak, one that included the libagup.a, but I still have the same problem even after linking the library.

Tero Laxström
Member #2,589
July 2002
avatar

Same problem? Or some other problem?

--
tlax

moon_rabbits
Member #8,469
March 2007
avatar

It's fixed. agup is a library written in C, so it was compiled in C. All I have to do is:

extern "C"{
      #include <agup.h>
}

And it works fine.

Matt Smith
Member #783
November 2000

That extern "C" should ideally be inside agup.h, so nobody else trips on it. Headers are great for hiding verbiage like this.

Go to: