[英]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.