Компиляция кода C++ с allegro 5 и g++
Какие флаги мне нужно добавить в g++ для компиляции кода с использованием allegro 5? Я старался
g++ allegro5test.cpp -o allegro5test `allegro-config --libs`
но это не работает. Я использую Ubuntu 11.04. Я установил allegro 5, следуя инструкциям на http://wiki.allegro.cc/index.php?title=Install_Allegro5_From_SVN/Linux/Debian
Я старался:
g++ allegro5test.cpp -o allegro5test `allegro-config --cflags --libs`
И это также дает кучу неопределенных ошибок, таких как: неопределенная ссылка на `al_install_system'
allegro-config --cflags --libs
выходы:
-I/usr/local/include
-L/usr/local/lib -lalleg
2 ответа
Итак, вы успешно установили allegro5 в вашу систему из SVN. Одна вещь, которую вы должны знать, это то, что эта сборка не поставляется с allegro-config. Если он установлен в вашей системе, это означает, что вы ранее установили allegro4.
В allegro5 внесено множество изменений, включая различные процедуры инициализации, имена библиотек и функций.
Вот приложение hello world для новой версии:
#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:
g++ hello.cpp -o hello -I/usr/include/allegro5 -L/usr/lib -lallegro
Allegro 5 использует pkg-config.
pkg-config --libs allegro-5.0 allegro_image-5.0
И так для каждой библиотеки, которую вы используете.