我错了什么?对al_init_image_addon错误的未定义引用,

时间:2012-02-09 16:55:21

标签: c++ linux codeblocks allegro

我包括哪些错误? 我正在使用codeblocks + allegro5 + ubuntu 11.10

并得到这2个错误

对'al_init_image_addon'的未定义引用 对'al_init_primitives_addon'|

的未定义引用

我确实正确地安装了allegro5以及所有依赖项。加载allegro.h的第一个教程工作正常,它创建了一个除xterm窗口之外的普通窗口。 我正在关注来自allegro wiki的“全屏教程中的节目”

#include "allegro5/allegro.h"
#include "allegro5/allegro_image.h"
#include <allegro5/allegro_primitives.h>
#include "allegro5/allegro_native_dialog.h"

int main()
{

    ALLEGRO_DISPLAY *display = NULL;
    ALLEGRO_DISPLAY_MODE disp_data;

    al_init();
    al_init_image_addon(); // <---------ERROR HERE
    al_init_primitives_addon();// < --------ERROR HERE TOO

    al_set_new_display_flags(ALLEGRO_FULLSCREEN);
    display = al_create_display(disp_data.width,disp_data.height);

    al_rest(3);
    al_destroy_display(display);

    return 0;
}

2 个答案:

答案 0 :(得分:1)

好吧,在做了一些谷歌搜索并在allegro的主页上发帖后,我得到了正确答案,

我错过了TOOLS&gt;下链接器部分中的.so文件。编译器&amp; DEbugger&gt; LINKER。

我必须添加这些行

/usr/lib/liballegro_dialog.so
/usr/lib/liballegro_color.so
/usr/lib/liballegro_audio.so
/usr/lib/liballegro_image.so
/usr/lib/liballegro_physfs.so
/usr/lib/liballegro.so
/usr/lib/liballegro_font.so
/usr/lib/liballegro_acodec.so
/usr/lib/liballegro_main.so
/usr/lib/liballegro_memfile.so
/usr/lib/liballegro_primitives.so
/usr/lib/liballegro_ttf.so

and `pkg-config --libs allegro-5.0`

请参阅此帖子了解截图。

http://hongouru.blogspot.com/2012/02/solved-allegro5-undefined-reference-to.html

答案 1 :(得分:0)

如果有人遇到此问题,则修复程序会将allegro_image-5.0添加到您的pkg-config路径,例如:

gcc game.c -o game $(pkg-config --cflags --libs allegro-5.0 allegro_image-5.0)