使用带有 mingw-w64 的 Allegro 5 的未定义参考

Undefined reference using Allegro 5 with mingw-w64

我正在尝试使用 mingw-w64 在 Windows10 上编译 Allegro 5 程序。

但是链接时出现了一些问题:

C:\Users\xxxx\AppData\Local\Temp\ccg5z97Y.o:test.cpp:(.text+0x1e): undefined reference to `al_install_system'
collect2.exe: error: ld returned 1 exit status

A) 这可能是什么原因?

B)静态编译应该怎么做?将 -lallegro 更改为 -lallegro-static 是否足够?

这个:

g++.exe (i686-posix-dwarf-rev2, Built by MinGW-W64 project) 7.1.0

是 MinGW-W64 提供的 32 位 GCC 变体之一。您正在尝试 link 它使用以下提供的 64 位库生成的 32 位代码:

allegro-x86_64-w64-mingw32-gcc-8.2.1-posix-seh-static-5.2.5.0.zip

这是行不通的。用适当的 64 位变体替换您的编译器 x86_64-posix-seh