Allegro в Ubuntu: неопределенная ссылка на al_install_system
Я попытался установить библиотеку Allegro сегодня. У меня такой же опыт в C++, но, похоже, у меня нет такого в подобных вещах. Я скомпилировал Allegro 5.0 из исходного кода и поместил его в /usr/lib/gcc/i486-linux-gnu/4.4/include/allegro5. Но когда я пытаюсь скомпилировать мой код, возникает следующее:
> g++ test2.cc -o test2
/home/chris/Desktop/c++/test2/.objs/main.o||In function `main':|
main.cpp:(.text+0x22)||undefined reference to `al_install_system'|
main.cpp:(.text+0x3e)||undefined reference to `al_create_display'|
main.cpp:(.text+0x6b)||undefined reference to `al_map_rgb'|
main.cpp:(.text+0x8e)||undefined reference to `al_clear_to_color'|
main.cpp:(.text+0x93)||undefined reference to `al_flip_display'|
main.cpp:(.text+0xa1)||undefined reference to `al_rest'|
main.cpp:(.text+0xa9)||undefined reference to `al_destroy_display'|
||=== Build finished: 7 errors, 0 warnings ===|
Код, который я использую:
#include <stdio.h>
#include <allegro5/allegro.h>
int main(int argc, char **argv)
{
ALLEGRO_DISPLAY *display = NULL;
if(!al_init()) {
fprintf(stderr, "failed to initialize allegro!\n");
return -1;
}
display = al_create_display(640, 480);
if(!display) {
fprintf(stderr, "failed to create display!\n");
return -1;
}
al_clear_to_color(al_map_rgb(0,0,0));
al_flip_display();
al_rest(10.0);
al_destroy_display(display);
return 0;
}
allegro-config --libs
ничего не возвращает. У меня сначала был пакет Allegro, но он тоже не работал.
2 ответа
Вам нужно связаться с библиотеками Allegro, но, похоже, вы этого не делаете.
allegro-config --libs
ничего не возвращает.
Есть часть вашей проблемы. Обычно вы должны иметь возможность добавить его в командную строку, например так:
g++ `allegro-config --libs` test2.cc -o test2
В моей системе (Ubuntu 10.10) это дает:
$ allegro-config --libs
-L/usr/lib -Wl,-Bsymbolic-functions -lalleg-4.2.2
Вы ссылаетесь на право allegro-config
? Может быть, вы должны указать полный путь к нему?
Allegro 5 использует pkg-config.
gcc foo.c -o foo $(pkg-config --libs allegro-5.0)
Вам также необходимо указать используемые вами библиотеки дополнений:
gcc foo.c -o foo $(pkg-config --libs allegro-5.0 allegro_image-5.0)