Ошибка компиляции Allegro: неопределенная ссылка на «PathFindOnPathA @ 8» - PullRequest
0 голосов
/ 16 августа 2011

Я установил Allegro 5.0.4 с MinGW 4.5.2 и использую компилятор GUN GCC с Code :: Blocks.

Когда я пытаюсь скомпилировать это:

#include <stdio.h>
#define ALLEGRO_STATICLINK
#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;
}

Я получаю следующую ошибку сборки.

Построение сообщений:

C:\i\liballegro-5.0.4-static-mt-debug.a(wsystem.o)
 In function "al_win_safe_load_library":

d:\Libraries\build\allegro\src\allegro-5.0.x\allegro-5.0.x\src\win\wsystem.c
 629 undefined reference to "PathFindOnPathA@8"

=== Build finished: 1 errors, 0 warnings ===

1 Ответ

3 голосов
/ 16 августа 2011

См. Это:

При статической ссылке, если вы получаете неопределенную ссылку, просто Google имя функции (PathFindOnPath)и найдите нужную библиотеку.В данном случае это «Shlwapi.lib».

Или, я полагаю, это libshlwapi.a на MinGW.

То есть: добавьте эту библиотеку в список связанных библиотек.

...