When I compile my Allegro 5 program using g++, it complains about undefined reference to 'al_init_primitives_addon', al_draw_filled_rectangle and other such functions that are found in allegro_primitives.h. It does not complain about functions in allegro.h like al_create_display.
Includes:
#include <allegro5/allegro.h>
#include <allegro5/allegro_primitives.h>
#include "objects.h"
#include "main.h"
Compiler command:
g++ main.cpp -o game -lallegro -I/usr/include/allegro5 -L/usr/lib/allegro5
Complaints:
/tmp/ccAyQlcl.o: In function `main':
main.cpp:(.text+0xef): undefined reference to `al_init_primitives_addon'
/tmp/ccAyQlcl.o: In function `Draw()':
main.cpp:(.text+0x38c): undefined reference to `al_draw_filled_rectangle'
main.cpp:(.text+0x415): undefined reference to `al_draw_filled_rectangle'
MSVC++ compiles this fine, by the way.
You need to link with allegro and allegro_primitives. The proper way is:
g++ main.cpp -o game $(pkg-config --libs
allegro-5.0 allegro_main-5.0 allegro_primitives-5.0)
(All on one line, of course.)
The .pc files will be in /usr/local/lib/pkgconfig which needs to be in your PKG_CONFIG_PATH environment variable.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With