1

我正在尝试将 Allegro 设置为在 Windows 的 Geany 中与 MinGW 一起使用。但是我一直遇到错误(我假设链接器错误)。这是我到目前为止所做的:

  • 我已经安装了 Geany 和 MinGW。

  • 我从http://www.allegro.cc/files/下载了 Allegro 5

  • 我选择了 Windows Binaries 下的 Allegro MinGW 4.6.2 zip

  • 我解压缩了文件(allegro-5.0.7-mingw-4.6.2)

它包含 3 个文件夹;lib、bin 和包含。

然后我将文件夹复制到我的 MinGW 安装中。更具体地说,我将 Allegro 中的 lib、bin 和 include 文件夹与我的 MinGW 安装中的 lib、bin 和 include 合并。

之后,我在 Geany 中设置了我的构建命令,如下所示:

编译: g++ -O0 -g3 -Wall -c -o"%e.o" "%f"

建造: g++ -o"%e" ./%e.o -Lalleg

执行: "./%e"

当我尝试构建我的项目时,我得到了一堆未定义的参考错误。对此的任何帮助都会很棒!

4

1 回答 1

3
  1. 您应该使用-l参数而不是-L参数来链接静态库。-L参数用于输入编译器应查找的附加库路径。

  2. 如您所见,“allegro-5.0.7-mingw-4.6.2”文件夹中没有“liballeg.a”文件,因此您根本没有链接。

  3. 您不必将所有这些文件复制到任何地方,但您应该通过使用-I-L参数告诉编译器它应该在哪里查找头文件和库。

假设您将“allegro-5.0.7-mingw-4.6.2.7z”提取到“allegro-5.0.7-mingw-4.6.2”文件夹。你有lib,incluedbin文件夹。只需在此文件夹中创建一个文件并将其命名为“main.cpp”。

main.cpp 的内容:

#include <allegro5/allegro.h>

int main(){
   al_init();

   return 0;
}

现在你所要做的就是,进入allegro-5.0.7-mingw-4.6.2

  • 像这样编译 main.cpp

g++ -c main.cpp -o main.o -I./include

  • 将 main.o 与库链接:

g++ -o main.exe main.o -L./lib -lallegro-5.0.7-md

现在你必须配置 Geany 来做同样的事情。如果将库和头文件粘贴到正确的 MinGW 文件夹中,则可以省略-I和参数。-L

于 2012-09-28T20:02:16.733 回答