Allegro.cc - Online Community

Allegro.cc Forums » Installation, Setup & Configuration » how to install install Allegro 5 with codelite on xubuntu ?

Credits go to Edgar Reynaldo for helping out!
This thread is locked; no one can reply to it. rss feed Print
how to install install Allegro 5 with codelite on xubuntu ?
dolphin swimming
Member #19,378
February 2021

Hi, I watched this video https://www.youtube.com/watch?v=3t19oia8F-o and the program below is working fine.

//***********************************
//*** Programme de test Allegro 5 ***
//***********************************

#include <stdlib.h>
#include <time.h>
#include <allegro5/allegro.h>
#include <allegro5/allegro_native_dialog.h>
#include <allegro5/allegro_primitives.h>
#include <allegro5/allegro_font.h>
#include <allegro5/allegro_ttf.h>

//*** Inclusion des fonctions ***
//#include <fonctions.h>

//*********************
//*** Fonction main ***
//*********************

int main()
{
// initialisation Allegro 5, quite si echou
if(!al_init()) return -1;

// pour obtenir une fenêtre
ALLEGRO_DISPLAY *display=NULL;

ALLEGRO_KEYBOARD_STATE key; // clavier simple

int fin=0; // pour la boucle de jeu
unsigned char r,v,b; // rouge vert bleu (0 - 255)

srand(time(NULL)); // initialisation azar

// creation de la fenetre
display=al_create_display(640,480);

// quite si le display a echoue
if(!display) return -1;

// install le clavier
if(!al_install_keyboard()) return -1;

// install la souris
if(!al_install_mouse()) return -1;

// install le joystick
if(!al_install_joystick()) return -1;

//if(!al_init_font_addon()) return -1; // init pour le text font
//if(!al_init_ttf_addon()) return -1; // init pour le text ttf
//if(!al_init_primitives_addon()) return -1; // init pour les primitives graphiques

//ALLEGRO_FONT *font24 = al_load_font("Starjhol.ttf",24,0);

// donner un nom à sa fenetre
al_set_window_title( display, "Premier programme avec CodeLite & Allegro5");

// colorer la fenetre
al_clear_to_color(al_map_rgb(255,0,100));

while(!fin)
{
al_get_keyboard_state(&key); // recuperation etat du clavier

if(al_key_down(&key,ALLEGRO_KEY_ESCAPE)) fin=1; // fin de boucle si touche echap down

// changement de couleur du fond si touche entree down
if(al_key_down(&key,ALLEGRO_KEY_ENTER))
{
r=rand()%256;
v=rand()%256;
b=rand()%256;
al_clear_to_color(al_map_rgb(r,v,b));
}

// affiche le display
al_flip_display();
}

// colorer la fenetre
al_clear_to_color(al_map_rgb(0,0,255));

// affiche le display
al_flip_display();

// temps d'attente en secondes
al_rest(5.0);

// liberation memoire de la fenetre
al_destroy_display(display);

// tout desinstaller
al_uninstall_system();

return 0;
}

But except for this:

if(!al_init_font_addon()) return -1;
if(!al_init_ttf_addon()) return -1;
if(!al_init_primitives_addon()) return -1;

So with this three lines I have several errors like :
"undefined reference to `al_init_font_addon'",
"undefined reference to `al_init_ttf_addon'"
"undefined reference to `al_init_primitives_addon'"

I am not a professional programmer, only a beginner hobbyist.
Do you have a solution ?

Thanks

DanielH
Member #934
January 2001
avatar

You can either link the massive monolith library that includes everything. Or link to the individual libraries for each addon. Look at the libraries folder/directory for the names.

dolphin swimming
Member #19,378
February 2021

Hi,

Thanks, but I don't have a file named "monolith" in my DD.

Do you have an example for proceed for this ?

"link to the individual libraries for each addon. Look at the libraries folder/directory for the names."

Edgar Reynaldo
Major Reynaldo
May 2007
avatar

The libraries you need to link will be named something like :

liballegro_*.so

Look in your /usr/lib or /usr/local/lib directory for the allegro libraries you need to link.

The monolith library doesn't come in the repositories on Linux AFAIK.

dolphin swimming
Member #19,378
February 2021

Hi thanks.

Yes I have several "liballegro_*.so" on /usr/lib/x86_64-linux-gnu

For installing Allegro 5 I proceeded like this:

sudo add-apt-repository ppa:allegro/5.2
sudo apt update
sudo apt upgrade

sudo apt install liballegro5-dev

In CodeLite:

New Project -> Console -> Simple executable (gcc)
Then in Settings Projet "allegrotest" (name)

Compiler -> Include Paths -> /usr/include
Linker -> Libraries Search Path -> /usr/lib
Linker -> Libraries -> allegro

and now:

Linker -> Libraries Search Path -> /usr/lib
Linker -> Libraries Search Path -> /usr/lib/x86_64-linux-gnu

But I have the same errors.

Edgar Reynaldo
Major Reynaldo
May 2007
avatar

There is more than one allegro library to link, because allegro comes with a series of addons.

In your linker libraries tab, add liballegro_font.so, liballegro_ttf.so, and liballegro_primitives.so, in addition to any other addon libraries you are using. You'll know which ones because you had to include their header to use them.

dolphin swimming
Member #19,378
February 2021

YES very good answers thanks very much. Now I have "====0 errors, 0 warnings====" in CodeLite.

Linker -> Libraries -> allegro

With other libraries like this:

-> liballegro_font.so
-> liballegro_ttf.so
-> liballegro_primitives.so

Thanks a lot Edgar Reynaldo :D

Go to: