繁体   English   中英

将Qt Creator与Allegro一起使用

[英]Using Qt Creator with 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.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()

当我尝试编译时,我不断收到这样的错误:

main.obj:-1:错误:LNK2019: 函数“int __cdecl _mangled_main(void)”中引用的未解析的外部符号imp__allegro_exit(?_ mangled_main @@ YAHXZ)main.obj:-1:错误:LNK2019:未解析的外部符号_ imp _set_close_button_callback在函数“int __cdecl _mangled_main(void)”中引用(?_mangled_main @@ YAHXZ)main.obj:-1:错误:LNK2019:函数“int __cdecl _mangled_main(void)”中引用的未解析的外部符号_ imp _set_window_title(?_mangled_main @ @YAHXZ)main.obj:-1:错误:LNK2019:未解析的外部符号_ imp _set_gfx_mode在函数“int __cdecl _mangled_main(void)”中引用(?_ mangled_main @@ YAHXZ)main.obj:-1:错误:LNK2019:未解析函数“int __cdecl _mangled_main(void)”中引用的外部符号_ imp _set_color_depth(?_ mangled_main @@ YAHXZ)main.obj:-1:错误:LNK2019:函数“int __cdecl _mangled_main(void)”中引用的未解析的外部符号__imp_install_allegro_version_check (?_mangled_main @@ YAHXZ)

我正在从http://www.allegro.cc/files/使用预编译的Allegro 4.4 for MinGW。 我将存档中的这三个文件夹(bin,include,lib)合并到具有相同文件夹的MinGW文件夹中。 然后将LIBS += liballegro-4.4.2-mt到.pro文件中,一切正常。

看起来你必须使用GCC编译的Allegro for Qt版本。

就像是

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

GCC使用不同的名称修改和不同的导出库,因此即使在使用Allegro dll时,MSVC编译的.lib也不起作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM