Аллегро 5 - MinGW + Geany

Я пытаюсь настроить Allegro для работы с MinGW в Geany в Windows. Но я продолжаю сталкиваться с ошибками (я предполагаю ошибки компоновщика). Вот что я сделал до сих пор:

  • У меня уже были установлены Geany и MinGW.

  • Я загрузил Allegro 5 со страницы http://www.allegro.cc/files/

  • Я выбрал Allegro MinGW 4.6.2 zip под Windows Binaries

  • Я разархивировал файл (allegro-5.0.7-mingw-4.6.2)

Он содержал 3 папки; lib, bin и include.

Затем я скопировал папки в свою установку MinGW. В частности, я объединил папки lib, bin и include из Allegro с lib, bin и включил их в свою установку MinGW.

После этого я настроил свои команды сборки в Geany следующим образом:

Скомпилировать: g++ -O0 -g3 -Wall -c -o"%e.o" "%f"

Сборка: g++ -o"%e" ./%e.o -Lalleg

Выполнить: "./%e"

Когда я пытаюсь создать свой проект, я получаю кучу неопределенных ссылочных ошибок. Любая помощь с этим была бы потрясающей!


person Zombie    schedule 28.09.2012    source источник


Ответы (1)


  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». У вас есть папки lib, inclued и 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 на то же самое. Вы можете опустить параметры -I и -L, если вы вставили файлы библиотеки и заголовки в соответствующие папки MinGW.

person KarasQ    schedule 28.09.2012
comment
Благодаря тонну! Я постоянно возился с этим, пытаясь заставить его работать, документация совершенно неправильная. Это прекрасно работает. - person Zombie; 29.09.2012