簡體   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