我正在尝试将Allegro设置为与Windows中的Geany中的MinGW一起使用。但我一直遇到错误(我假设链接器错误)。这是我到目前为止所做的:
我已经安装了Geany和MinGW。
我在Windows二进制文件
我解压缩了文件(allegro-5.0.7-mingw-4.6.2)
它包含3个文件夹; lib,bin和include。
然后我将文件夹复制到我的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"
当我尝试构建我的项目时,我得到了一堆未定义的引用错误。任何帮助都会很棒!
答案 0 :(得分:3)
您应该使用-l
参数而不是-L
参数来链接静态库。 -L
参数用于输入编译器应查找的其他库路径。
如您所见,“allegro-5.0.7-mingw-4.6.2”文件夹中没有“liballeg.a”文件,因此您根本就没有链接。
您不必将所有这些文件复制到任何地方,但是您应该使用-I
和-L
参数告诉编译器应该在哪里查找标头和库。< / p>
假设您将“allegro-5.0.7-mingw-4.6.2.7z”解压缩到“allegro-5.0.7-mingw-4.6.2”文件夹。您有lib
,inclued
和bin
文件夹。只需在此文件夹中创建一个文件并将其命名为“main.cpp”。
main.cpp的内容:
#include <allegro5/allegro.h>
int main(){
al_init();
return 0;
}
现在您只需输入allegro-5.0.7-mingw-4.6.2
g ++ -c main.cpp -o main.o -I./include
g ++ -o main.exe main.o -L./lib -lallegro-5.0.7-md
现在你必须配置Geany来做同样的事情。如果将库和头文件粘贴到正确的MinGW文件夹,则可以省略-I
和-L
参数。