1

Jaką opcję trzeba podać configure'owi aby znalazł dodatkowe biblioteki atarowsie, np SDL_image?
Np obecnie wywołuję configure tak:

CC="m68k-atari-mint-gcc" CFLAGS="-m68020-60" LDFLAGS="-L/usr/m68k-atari-mint/lib/m68020-60 -L/home/jury/sdl_stuff/lib/m68020-60" LIBS="-lfreetype -lSDL_mixer -logg -lvorbis -lmikmod -lSDL -lSDL_image -lpng12 -ltiff -ljpeg -lgem -lm -lz" CPPFLAGS="-I/home/jury/sdl_stuff/include/SDL -I/home/jury/sdl_stuff/include" CXX="m68k-atari-mint-g++" CXXFLAGS="-m68020-60 -std=c++11" ./configure --enable-lite --disable-threads --disable-shared --enable-static --host=m68k-atari-mint

I przy testowaniu SDL_image (który jest Required) wykłada się tak oto:

checking for IMG_Load in -lSDL_image... no
configure: error: *** SDL_image lib not found! Get SDL_image from
http://www.libsdl.org/projects/SDL_image/index.html

Na linuksie jak wywołuję configure to znajduje linuksowego SDL_image i przechodzi wszystkie testy prawidłowo.
Co muszę mu podać aby zobaczył atarowskie SDL_image znajdujące się w /home/jury/sdl_stuff/lib/m68020-60?

Oczywiście jak z configure'a usunąłem ten kawałek skryptu odpowiedzialny za test SDL_image, to reszta przeszła prawidłowo i potem przy kompilacji i budowaniu binarki linker sięgnął już do prawidłowych bibliotek i stworzył prawidłową binarkę. Ale chciałbym wiedzieć jak wywołać configure'a tak aby prawidłowo przeszedł wszystkie testy.

2

Zawsze wydawało mi się, że to zależy od konkretnego skryptu configure. Hmmm... Rozumiem, że robisz cross-kompilację.

Pamięć studenta ma charakter kwantowy - student wie wszystko, ale jednocześnie nic nie pamięta.
- Kilka(naście?) pudełek z klawiszami i światełkami. I jeden Vectrex, żeby nimi wszystkimi rządzić.

3

No takie jest też i moje rozumienie, ale też wydaje mi się, że takie standardowe rzeczy jak dostęp do dodatkowych bibliotek jest z góry jakoś tam ustalone, trzeba tylko odpowiednią opcję dostarczyć. Dotychczas kompilując natywnie na linuksa zawsze tylko uruchamiałem ten skrypt i tyle, ewentualnie dostarczając jakieś opcje wyszczgólnione pod --help. Ale pierwszy raz potrzebuję kross-kompilować z użyciem configure i za nic nie umiem go zmusić aby poszukiwał atarowego SDL_image.

4

@jury, a jak bibliotekę zapiszesz w katalogu ze źródłem? Nie znam się,  więc mogę bzdury gadać.

Sikor umarł...

5 Ostatnio edytowany przez jury (2021-04-22 11:02:54)

Bzdury czy nie, to jak coś nie działa i nie wiadomo o co chodzi, to warto próbować i rzeczy które wydają się bzdurne :)
Ale w tym przypadku katalog ze źródłem o tyle nic nie wniesie, że działania configure dotyczą obszaru weryfikacji i konfiguracji samego środowiska czyli sprawdzanie odpowiedniości kompilatora, weryfikacja wymaganych zależności (właśnie jak np SDL_image w tym przypadku) i tak dalej. Dla niego źródła mogą zupełnie nie istnieć, za to środowisko które potem ma działać na źródłach, musi być tip-top.

6

A gdzie masz zainstalowaną tą bibliotekę? Jesteś pewien, że LDFLAGS zawiera tą ścieżkę?

What can be asserted without proof can be dismissed without proof.

7

Configure wypluwa log, w którym są logowane kolejne kroki. A w samym konfigure są np. kody plików kompilowanych i parametry kompilacji. Popatrz w jedno i w drugie, poszukaj fragmentu, który odpowiada za interesujący cię aspekt. Możliwe, że trzeba ten skrypt poprawić.

Pamięć studenta ma charakter kwantowy - student wie wszystko, ale jednocześnie nic nie pamięta.
- Kilka(naście?) pudełek z klawiszami i światełkami. I jeden Vectrex, żeby nimi wszystkimi rządzić.

8 Ostatnio edytowany przez jury (2021-04-22 11:49:57)

sqward napisał/a:

A gdzie masz zainstalowaną tą bibliotekę? Jesteś pewien, że LDFLAGS zawiera tą ścieżkę?

Zainstalowana jest w /home/jury/sdl_stuff/lib/m68020-60 no i dokładnie taką ścieżkę podaję w LDFLAGS:
LDFLAGS="-L/usr/m68k-atari-mint/lib/m68020-60 -L/home/jury/sdl_stuff/lib/m68020-60"

perinoid napisał/a:

Configure wypluwa log, w którym są logowane kolejne kroki. A w samym konfigure są np. kody plików kompilowanych i parametry kompilacji. Popatrz w jedno i w drugie, poszukaj fragmentu, który odpowiada za interesujący cię aspekt. Możliwe, że trzeba ten skrypt poprawić.

Tak, patrzyłem w ten log, ale nic specjalnego nie zauważyłem. Dobra, coś pewnie przeoczyłem więc muszę dzisiaj przysiąść do tego jeszcze na spokojnie i prześledzić znak po znaku.

9

Znajdź fragment odpowiadający za wykrywanie tej biblioteki i go prześledź. Jakby co to pisz tutaj.

Pamięć studenta ma charakter kwantowy - student wie wszystko, ale jednocześnie nic nie pamięta.
- Kilka(naście?) pudełek z klawiszami i światełkami. I jeden Vectrex, żeby nimi wszystkimi rządzić.