我包括错了什么? 我正在使用codeblocks + allegro5 + Ubuntu 11.10
并得到这2个错误
未定义对“al_init_image_addon”的引用未定义对“al_init_primitives_addon”的引用
我确实安装了所有的依赖关系的allegro5。 加载allegro.h的第一个教程工作正常,它创build了一个正常的窗口,从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; }
那么,在快板的主页上做一些谷歌搜索和发布后,我得到了正确的答案,
我在工具>编译器&DEBUGGER> LINKER下链接器部分丢失了.so文件。
我不得不添加这些行
/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
如果有任何人遇到这个问题,修正是将allegro_image-5.0
添加到你的pkg-config路径中,例如:
gcc game.c -o game $(pkg-config --cflags --libs allegro-5.0 allegro_image-5.0)