1

Windows の Geany で MinGW と連携するように Allegro をセットアップしようとしています。しかし、エラーが発生し続けます (リンカー エラーを想定しています)。これまでに行ったことは次のとおりです。

  • Geany と MinGW は既にインストールされています。

  • http://www.allegro.cc/files/から Allegro 5 をダウンロードしました。

  • Windows Binaries で Allegro MinGW 4.6.2 zip を選択しました

  • ファイルを解凍しました (allegro-5.0.7-mingw-4.6.2)

3 つのフォルダーが含まれていました。lib、bin、および include。

次に、フォルダーを MinGW インストールにコピーしました。より具体的には、Allegro の lib、bin、および include フォルダーを、MinGW インストールの lib、bin、および include とマージしました。

その後、次のように Geany でビルド コマンドを設定しました。

コンパイル: g++ -O0 -g3 -Wall -c -o"%e.o" "%f"

建てる: g++ -o"%e" ./%e.o -Lalleg

実行する: "./%e"

プロジェクトをビルドしようとすると、未定義の参照エラーが大量に発生します。これに関するどんな助けも素晴らしいでしょう!

4

1 に答える 1

3
  1. -lパラメータの代わりに-Lパラメータを使用して、静的ライブラリとリンクする必要があります。-Lパラメータは、コンパイラが検索する追加のライブラリ パスを入力するために使用されます。

  2. ご覧のとおり、「allegro-5.0.7-mingw-4.6.2」フォルダーに「liballeg.a」ファイルがないため、まったくリンクしていません。

  3. これらのファイルをすべてどこかにコピーする必要はありませんが、パラメーター-I-Lパラメーターを使用して、ヘッダーとライブラリを探す場所をコンパイラに指示する必要があります。

「allegro-5.0.7-mingw-4.6.2.7z」を「allegro-5.0.7-mingw-4.6.2」フォルダに抽出したとします。libincluedおよびbinフォルダーがあります。このフォルダにファイルを作成し、「main.cpp」という名前を付けます。

main.cpp の内容:

#include <allegro5/allegro.h>

int main(){
   al_init();

   return 0;
}

今あなたがしなければならないのは、allegro-5.0.7-mingw-4.6.2

  • このようにmain.cppをコンパイルします

g++ -c main.cpp -o main.o -I./include

  • main.o をライブラリにリンクします。

g++ -o main.exe main.o -L./lib -lallegro-5.0.7-md

Geany を同じように設定する必要があります。ライブラリとヘッダー ファイルを適切な MinGW フォルダーに貼り付けた場合は、パラメーター-Iとパラメーターを省略できます。-L

于 2012-09-28T20:02:16.733 に答える