2017-03-17 4 views
0

J'essaye de porter sur un jeu que j'ai fait en utilisant Allegro 5.0 (de Windows à un Raspberry Pi exécutant Raspian). J'ai installé Allegro et déplacé tous mes fichiers source, mais quand je tente de compiler en utilisant: * g ++ -std = C++ 0x .cpp -o SpaceFighter $ (pkg-config --libs allegro-5) I obtenir les éléments suivants:Le jeu Allegro 5 ne se compilera pas avec GCC

/tmp/ccBliSky.o: En fonction main': main.cpp:(.text+0x130): undefined reference to al_show_native_message_box. main.cpp :(texte + 0x160): undefined reference to al_init_font_addon' main.cpp:(.text+0x164): undefined reference to al_init_ttf_addon ' main.cpp :(texte + 0x168).: undefined reference to al_init_image_addon' main.cpp:(.text+0x1a4): undefined reference to al_load_ttf_font ' main.cpp :(texte + 0x574): undefined reference to al_draw_textf' /tmp/ccBMyqom.o: In function MenuItem :: MenuItem()': MenuItem.cpp :(texte + 0xA0):. undefined reference to al_load_ttf_font' /tmp/ccBMyqom.o: In function Men uItem :: ~ MenuItem() ': MenuItem.cpp :(. text + 0x1ac): référence non définie à al_destroy_font' /tmp/ccBMyqom.o: In function MenuItem :: Draw (GameTime const *)': MenuItem.cpp :(. text + 0x2fc): référence non définie à al_draw_text' /tmp/ccKXP3ds.o: In function :: SetAudioSample vaisseau du joueur (std :: string) ':. PlayerShip.cpp :(texte + 0x604): undefined reference to al_destroy_sample' PlayerShip.cpp:(.text+0x64c): undefined reference to al_load_sample' collect2: erreur: ld retourné 1 état sortie

ET NON C'EST PAS UN DUPLICATA DE "Quelles sont les références non définies/les erreurs de symboles externes non résolues? Quelles sont les causes les plus fréquentes et comment corriger/les empêcher? »

Je sais ce qui provoque généralement des erreurs de référence les plus indéfinies. Cette question est spécifique à la bibliothèque allegro J'utilise.

est ici un peu de code (Je suis évidemment pas d'afficher tout le jeu):

#include <allegro5/allegro.h> 
#include <allegro5/allegro_native_dialog.h> 

#include <allegro5/allegro_font.h> 
#include <allegro5/allegro_ttf.h> 
#include <allegro5/allegro_image.h> 

#include <iostream> 

#include "Game.h" 


int main(int argc, char *argv[]) 
{  
    const char errorType[] = "Initialization Error"; 
    const int flags = ALLEGRO_MESSAGEBOX_ERROR; 

    // Initialize Allegro 
    if (!al_init()) 
    { 
     const char message[] = "Failed to initialize Allegro Library."; 
     //al_show_native_message_box(nullptr, "Error", errorType, message, nullptr, flags); 
     return -1; 
    } 

    Game game; 

    // Initialize a new window for gameplay. 

    int screenWidth = Game::GetScreenWidth(); 
    int screenHeight = Game::GetScreenHeight(); 

Merci d'avance pour toute aide

+0

double possible de [? Qu'est-ce qu'une erreur de symbole de référence externe non défini/non résolu et comment puis-je fixer] (http://stackoverflow.com/questions/12573816/what-is-an-undefined -référence-non résolue-externe-symbole-erreur-et-comment-faire-je-fix) –

Répondre

2

Alegro divise ses fonctionnalités à travers plusieurs modules Votre ligne pkg-config doit inclure tous les modules que vous utilisez!. Essayez le foll en raison:

pkg-config --libs allegro-5 allegro_font-5 allegro_image-5 allegro_ttf-5