'allegro_init()' не был объявлен в этой области

Ребята, я пытаюсь установить библиотеку allegro 5 на Ubuntu 11.04. Учебник, которому я следовал при выполнении это. Теперь у меня были некоторые ошибки при установке библиотек с первой попытки, но я смог их преодолеть и правильно установить библиотеки. Проблема в том, что когда я пытаюсь запустить свой пример кода

#include <allegro5/allegro.h> 

int main(int argc, char *argv[]) 

{
allegro_init(); 

install_keyboard(); 

set_gfx_mode(GFX_AUTODETECT, 640,480,0,0); 

readkey();

return 0; 
}

END_OF_MAIN() 

Я получаю ошибки, как

ajinkya@ajinkya-8I945GZME-RH:~/random$ g++ example.cpp -o example -lalleg
example.cpp: In function ‘int main(int, char**)’:
example.cpp:7:15: error: ‘allegro_init’ was not declared in this scope
example.cpp:9:19: error: ‘install_keyboard’ was not declared in this scope
example.cpp:11:15: error: ‘GFX_AUTODETECT’ was not declared in this scope
example.cpp:11:42: error: ‘set_gfx_mode’ was not declared in this scope
example.cpp:13:10: error: ‘readkey’ was not declared in this scope
example.cpp: At global scope:
example.cpp:18:13: error: expected constructor, destructor, or type conversion at end   of input

У меня есть весь основной заголовочный файл в /usr/include/allegro5.


person Ajinkya    schedule 21.08.2012    source источник
comment
Allegro 5 не имеет обратной совместимости с Allegro 4. Вы пишете код Allegro 4, используете заголовок Allegro 5 и связываетесь с Allegro 4. Совет: если функции имеют префикс al_, то вы просматриваете руководство по Allegro 5. Вы должны использовать Allegro 5 для новых проектов.   -  person Matthew    schedule 21.08.2012


Ответы (1)


Вы проверили, что эти методы действительно существуют в заголовочном файле?

Похоже, вы используете Allegro 4 API вместо Allegro 5: см. http://wiki.allegro.cc/index.php?title=Allegro_5_Tutorial/Displays

person Y__    schedule 21.08.2012
comment
Спасибо. Но я не понимаю, почему примеры, поставляемые с пакетом, устарели и не работают. Таким образом, базовый код работает, но все еще есть некоторые проблемы, например, почему я должен использовать gcc -Wall lesson1.cpp pkg-config --libs allegro-5.0``, а также в этом примере выдаются такие ошибки, как `неопределенная ссылка на al_show_native_message_box' - person Ajinkya; 21.08.2012
comment
Возможно, документация не соответствует последнему коду. Неопределенная ссылка связана с отсутствием библиотеки в вашем LD_LIBRARY_PATH или вам может потребоваться обновить файл ld.so.conf. Где вы нашли файл урока1.cpp? - person Y__; 21.08.2012
comment
Исходный код, используемый в файле урок1.cpp wiki.allegro.cc/. - person Ajinkya; 21.08.2012
comment
@Ajinkya, Allegro 5 модульный. например, в этом примере вы должны ссылаться на библиотеки allegro, allegro_image и allegro_native_dialog. - person Matthew; 21.08.2012
comment
нашел решение по этой ссылке, и программы работают нормально. - person Ajinkya; 21.08.2012