WItam wszystkich!
To mój pierwszy post dlatego proszę o wyrozymiałość.
Mianowicie mam problem z kompilacją programów korztających z bibioteki SDL.
Ale po kolei:
Mam zainstalowany MinGW wraz MSYS. Kopilowałem program "Hello World" i poszło bez problemy dlatego wnioskuję że kompilator działa. Zachciało mi się jednak pobawić w pisanie programów multiplatformowych i dlatego postanowiłem skorzystać z dobrodziejstw bibioteki SDL.
Ściągnołem źródła tejże biblioteki dla mingw i zgodnie z instrukcją uruchomiłem MSYS-a. Następnie rozpakowałem źródła do katalogu /tmp i tam ./configure, make ,make install. Instalacja biblioteki przeszła bezproblemowo. Potem chciałem przetestować czy biblioteka działa więc wszedłem do katalogu /test w źródłach biblioteki SDL i tam ./configure. A tam niestety wyskoczyło mi coś takiego:
/tmp/SDL-1.2.7/test
$ ./configure
checking build system type... i686-pc-mingw32
checking host system type... i686-pc-mingw32
checking target system type... i686-pc-mingw32
checking for a BSD-compatible install... /bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking for C compiler default output file name... a.exe
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables... .exe
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... none
checking for an ANSI C-conforming const... yes
checking for sdl-config... /usr/local/bin/sdl-config
checking for SDL - version >= 1.2.7... no
- Could not run SDL test program, checking why...
- The test program compiled, but did not run. This usually means
- that the run-time linker is not finding SDL or finding the wrong
- version of SDL. If it is not finding SDL, you'll need to set your
- LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point
- to the installed location Also, make sure you have run ldconfig if that
- is required on your system
- If you have an old version installed, it is best to remove it, although
- you may also be able to get things to work by modifying LD_LIBRARY_PATH
configure: error: *** SDL version 1.2.7 not found!
Niestety nie wiem jak ustawić tą zmienną LD_LIBRARY_PATH.
Postanowiłem użyć środowiska eclipse.
Tam chciałem skompiloać program tworzący okno SDL z obsługą openGL.
Przekopiowałem pliki *.h do katalogu include a pliki z bibliotekami do katalogu lib. Plik SDL.dll przekopiowałem do katalodu z programem (również do katalogu Windows\system32).
Niestety próba kompilacji skutkuje komunikatem:
make -k clean all
rm -f example.exe *.o core
g++ -c InitGL.cpp -lSDL
g++.exe: -lSDL: linker input file unused because linking not done
g++ -c Main.cpp -lSDL
g++.exe: -lSDL: linker input file unused because linking not done
g++ -o example.exe InitGL.o Main.o -lSDL -lSDLmain -lopengl32 -lglu32 -lm
E:/Programowanie/MinGW/bin/../lib/gcc-lib/mingw32/3.2.3/../../../libmingw32.a(main.o)(.text+0x97):main.c: undefined reference to WinMain@16' make: *** [example.exe] Error 1 make: Target
all' not remade because of errors.
Pod linuxem nie mam najmniejszego problemu ze skompilowaniem tego przykładu.
Prosze o pomoc bez tego nie będę mógł pójść dalej z nauką.
Z góry dziękuję za pomoc.