
Я попробовал установить библиотеку allegro на свою систему. Я не получил никаких ошибок при установке библиотеки, но, похоже, что-то пошло не так во время установки. Мой код вместе с ошибками, которые я получаю при компиляции программы:
/* testprog.c */
#include <allegro.h>
void init();
void deinit();
int main() {
init();
while (!key[KEY_ESC]) {
/* put your code here */
}
deinit();
return 0;
}
END_OF_MAIN()
void init() {
int depth, res;
allegro_init();
depth = desktop_color_depth();
if (depth == 0) depth = 32;
set_color_depth(depth);
res = set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0);
if (res != 0) {
allegro_message(allegro_error);
exit(-1);
}
install_timer();
install_keyboard();
install_mouse();
/* add other initializations here */
}
void deinit() {
clear_keybuf();
/* add other deinitializations here */
}
Errors I'm getting:
$ gcc testprog.c -o testprog `allegro-config --cflags --libs`
testprog.c: In function ‘init’:
testprog.c:26:1: warning: format not a string literal and no format arguments [-Wformat-security]
/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
collect2: error: ld returned 1 exit status
$
Я следовал инструкциям по установке библиотеки и компиляции моей программы, приведенным по этим ссылкам:
Инструкция по установке allegro на ubuntu
Инструкции по компиляции программ, написанных на языке аллегро
решение1
allegro_message()
выводит сообщение, используя printf()
строку формата.
Ошибка в строке:
allegro_message(allegro_error);
Измените на:
allegro_message("%s\n", allegro_error);