C++ 将Qt Creator与Allegro一起使用

C++ 将Qt Creator与Allegro一起使用,c++,windows,qt-creator,allegro,C++,Windows,Qt Creator,Allegro,我想让Allegro 4(MSCV 9)与Qt Creator合作。我正在使用Windows XP。 我已将以下行添加到我的.pro中: INCLUDEPATH += C:/Allegro/include \ LIBS += C:/Allegro/lib/allegro-4.4.2-md.lib \ C:/Allegro/lib/allegro-4.4.2-monolith-md.lib \ C:/Allegro/lib/allegrogl-0.4.4-md.li

我想让Allegro 4(MSCV 9)与Qt Creator合作。我正在使用Windows XP。 我已将以下行添加到我的.pro中:

INCLUDEPATH += C:/Allegro/include \
LIBS += C:/Allegro/lib/allegro-4.4.2-md.lib \
        C:/Allegro/lib/allegro-4.4.2-monolith-md.lib \
        C:/Allegro/lib/allegrogl-0.4.4-md.lib \
        C:/Allegro/lib/loadpng-1.5-md.lib \
我的代码如下所示:

#include <iostream>
#include <allegro.h>

volatile int closedWindow = false;

void CloseButtonCallback() {closedWindow = true;}
END_OF_FUNCTION(CloseButtonCallback())

int main()
{
    allegro_init();
    set_color_depth(32);
    set_gfx_mode(GFX_AUTODETECT_WINDOWED, 400, 300, 0, 0);
    set_window_title("Testing");

    LOCK_FUNCTION(closeButtonCallback)
    set_close_button_callback(CloseButtonCallback);
    while(!closedWindow){}
    allegro_exit();
    return 0;
}
END_OF_MAIN()
#包括
#包括
volatile int closedWindow=false;
void CloseButtonCallback(){closedWindow=true;}
函数的结束(CloseButtonCallback())
int main()
{
第一快板();
设置颜色和深度(32);
设置gfx模式(gfx自动检测窗口,400,300,0,0);
设置窗口标题(“测试”);
锁定功能(关闭按钮回拨)
设置关闭按钮回调(关闭按钮回调);
而(!closedWindow){}
快板退出();
返回0;
}
_MAIN()的_结尾
当我试图编译时,我不断地遇到这样的错误:

main.obj:-1:错误:LNK2019:未解析的外部符号在函数“int\u cdecl\u mangled\u main(void)”中引用的imp\u快板\u出口(?\u mangled\u main@@YAHXZ) main.obj:-1:错误:LNK2019:未解析的外部符号\u imp\u set\u close\u button\u回调在函数“int\u cdecl\u mangled\u main(void)”中引用(?\u mangled\u main@@YAHXZ) main.obj:-1:错误:LNK2019:未解析的外部符号\u imp\u set\u window\u函数“int\u cdecl\u mangled\u main(void)”中引用的标题(?\u mangled\u main@@YAHXZ) main.obj:-1:错误:LNK2019:未解析的外部符号\u imp\u set\u gfx\u模式在函数“int\u cdecl\u mangled\u main(void)”中引用(?\u mangled\u main@@YAHXZ) main.obj:-1:错误:LNK2019:未解析的外部符号\u imp\u set\u color\u深度在函数“int\u cdecl\u mangled\u main(void)”中引用(?\u mangled\u main@@YAHXZ)
main.obj:-1:错误:LNK2019:未解析的外部符号\uuuuu imp
\u安装\u allegro\u版本\u检查在函数“int\uuu cdecl\u mangled\u main(void)”中引用(?\u mangled\u main@@YAHXZ)

看起来您必须使用GCC编译的allegro版本进行Qt

差不多

LIBS +="path_to_allegro_for_mingw/lib/liballegro-4.4.2-md.a"

GCC使用不同的名称混乱和不同的导出库,因此即使您使用Allegro DLL,MSVC编译的.lib也无法工作。

我使用预编译的Allegro 4.4从中混合。我将归档文件中的三个文件夹(bin、include、lib)合并到MinGW文件夹,该文件夹也有相同的文件夹。然后将
LIBS+=liballegro-4.4.2-mt
添加到.pro文件中,一切正常