1

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: 未解決の外部シンボル _ imp _set_window_title が関数 "int __cdecl _mangled_main(void)" で参照されています (?_mangled_main@ @YAHXZ) main.obj:-1: エラー: LNK2019: 未解決の外部シンボル _ imp _set_gfx_mode が関数 "int __cdecl _mangled_main(void)" で参照されました (?_mangled_main@@YAHXZ) main.obj:-1: エラー: LNK2019: 未解決外部シンボル_imp関数 "int __cdecl _mangled_main(void)" で参照されている _set_color_depth (?_mangled_main@@YAHXZ) main.obj:-1: エラー: LNK2019: 未解決の外部シンボル __imp _install_allegro_version_check が関数 "int __cdecl _mangled_main(void)" で参照されています (?_mangled_main@ @YAHXZ)

4

2 に答える 2

2

http://www.allegro.cc/files/から MinGW 用にコンパイル済みの Allegro 4.4 を使用しています。アーカイブ内のこれら 3 つのフォルダー (bin、include、lib) を、同じフォルダーを持つ MinGW フォルダーにマージしました。LIBS += liballegro-4.4.2-mt次に.pro ファイルに追加すると、すべて正常に動作します。

于 2012-10-30T17:17:09.247 に答える
1

Qt 用の Allegro の GCC コンパイル バージョンを使用する必要があるようです。

何かのようなもの

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

GCC は異なる名前マングリングと異なるエクスポート ライブラリを使用するため、Allegro dll を使用している場合でも、MSVC でコンパイルされた .lib は機能しません。

于 2012-06-28T22:18:47.697 に答える