【问题标题】:Allegro compile error: undefined reference to "PathFindOnPathA@8"Allegro 编译错误:未定义对“PathFindOnPathA@8”的引用
【发布时间】:2011-08-15 22:59:18
【问题描述】:

我已经使用 MinGW 4.5.2 设置了 Allegro 5.0.4,并且我正在使用带有 Code::Blocks 的 GUN GCC 编译器。

当我尝试编译这个时:

#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 ===

【问题讨论】:

    标签: c++ compiler-errors allegro5


    【解决方案1】:

    看这个:

    当你静态链接时,如果你得到一个未定义的引用,只需谷歌函数名 (PathFindOnPath) 并查找它需要的库。在这种情况下,它是“Shlwapi.lib”。

    或者,我想是 MinGW 上的 libshlwapi.a。

    即:将该库添加到您的链接库列表中。

    【讨论】:

    • 谢谢,我可以发誓我已经包含了所有的库,并且按照正确的顺序,我猜我错过了一个。我至少检查了 5 次列表。
    • 该依赖项是 5.0.4 的新内容。
    猜你喜欢
    • 1970-01-01
    • 2016-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多