1 Ostatnio edytowany przez jury (2010-11-01 19:39:40)

Ze strony:

http://www.radix.net/~atari/mint/recent/

zamontowałem sobie gcc i sdl. Próbuję najprostszy przykład z tutoriala sdl:

#include<SDL.h>
#include<stdlib.h>
#undef main
int main()
{
 if(SDL_Init(SDL_INIT_VIDEO)<0) {
  printf("Nie mozna zainicjalizowac SDL");
 return 1;
 }
 atexit(SDL_Quit);
 return 0;
} 

i podczas kompilacji dostaję: fatal error SDL.h not found. W /usr/include/SDL oczywiście jest SDL.h, w c:\mint\mint.cnf dodałem ścieżkę do /usr/include/SDL i jak robię echo $PATH to pokazuje się ta ścieżka. Coś tu nie rozumiem, pomóżcie bo nie skompiluję najprostszego przykładu dla SDLa :)

2

może po prostu dać

 #include <SDL/SDL.h> 

3 Ostatnio edytowany przez jury (2010-11-01 20:49:45)

Tak, już na to trafiłem i poszło dalej, ale wielkie dzięki.
Teraz mam kolejne błędy, trylion undefined refrence to ..., .
Może jest w sieci jakiś tutorial jak postawić SDLa na MiNTie bo może coś naknociłem ? Nie mogę na nic trafić a chyba było by przydatne. No chyba że źle kompiluję:

gcc 1.c -o 1.prg -lSDL

4

undefined.... to chyba z powodu nie dodania w opcjach projektu /parametrach/linkerze definicji co ma zlinkować,
ja dodaje zazwyczaj

-lmingw32
-mwindows
-lSDLmain
-lSDL
-lSDL_image
-lSDL_ttf

5 Ostatnio edytowany przez saulot (2010-11-01 21:09:25)

jury: jeżeli masz poprawnie zainstalowanego SDL'a to zamiast manualnie podawać dyrektywy dla prerocessora i linkera powinno się używać sdl-config --libs i sdl-config --cflags .

Więc kompilacja w Twoim przypadku powinna wyglądać następująco (jeżeli robisz to natywnie):

gcc l.c `sdl-config --cflags`-o l.prg `sdl-config --libs`   

lub

gcc `sdl-config --cflags` l.c -o l.prg `sdl-config --libs`   

Nie mam tego jak sprawdzić (chyba druga wersja będzie prawidłowa, nie pamiętam czy inkludy daje się przed plikiem źródłowym czy styknie po). Ogólnie powinieneś poczytać wiki SDL'a na ten temat. Pozatym oprócz SDLa trzeba linkować gemliba i ldg. Ale to załatwia sdl-config --libs. Jak będziesz miał błędy linkowania to sobie zainstaluj te biblioteki.

UWAGA: zwróć uwagę na apostrofy inaczej bash sypnie błędami i powie Ci f**k you.

=========================================
[www] https://nokturnal.pl
[ 16/32 bit Atari development wiki] https://bus-error.nokturnal.pl

6 Ostatnio edytowany przez jury (2010-11-01 21:16:58)

Tak to tez probowalem ale krzyczal ze niewie co to  sdl-config --cflags i sdl-config --libs
No coz, chyba masz racje, musze troche wiecej poczytac wiki, a nie tak na hurra :)
A, czekaj, zakapowalem, bede instalowal w takim razie te biblioteki

7

jury: to ściagnij sobie SDL'a i skompiluj ze źródeł. Robisz tylko najpierw

./autogen.sh

, potem

./configure --disable-threads --enable-static --disable-shared --disable-video-opengl
make && make install

Będziesz tylko potrzebował jakieś autotoolsy. m4(jak autogen zawiedzie), wersje deweloperskie gemliba, mintliba i ldg (tego na pewno nie będziesz miał, trzeba ściągnąć z sourceforge'a) itp... No i będziesz musiał jakoś z repozytorium mercuriala SDL'a ściągnąć, ale na atarce chyba klienta nie ma. Po instalacji sdl-config powien już być i wskazywać na odpowiednie ścieżki.

=========================================
[www] https://nokturnal.pl
[ 16/32 bit Atari development wiki] https://bus-error.nokturnal.pl

8 Ostatnio edytowany przez saulot (2010-11-01 21:45:33)

jury drugą opcją byłoby(jeżeli masz rzeczywiście tego SDL'a na dysku) dodanie ścieżek gdzie kompilator ma szukać inkludów SDLa i bibliotek.

spróbuj:

gcc -Iścieżka do inkludów 1.c -o 1.prg -lSDL -lgem -lldg -lm -Lścieżka do libów
=========================================
[www] https://nokturnal.pl
[ 16/32 bit Atari development wiki] https://bus-error.nokturnal.pl

9 Ostatnio edytowany przez jury (2010-11-02 00:00:34)

to co przedostatnio napisales to jeszcze nie probowalem
ale to co ostatnio to juz tylko wypluwa 3 undefined reference ..., czyli juz lepiej :)
a sdl'a to raczej mam :)
poszedl bez problemow z rpm'a ze strony ktora sam jakies 4 miesiace temu linkowales ( Keith'a )
gcc zreszta tez

edit
OK sprobowalem skompilowac sdl'a samemu, pobralem zrodla ze strony Keith'a
autogen.sh prawie poszedl ale krzyknal ze mu potrzebny autoconf > 2.57 a ja mam wlasnie takowego.
na:

http://sparemint.org/sparemint/

jest wlasnie tylko 2.57, ale znalazlem 2.62 w netbsd dla atari,
alien nie chcial tknac .tgz wiec przerobilem go na rpm ( z sukcesem )
niestety podczas instalacji tego rpm'a krzyczy:
unpacking of archive failed on file /+build_info: cpio: open failed permission denied

czy to znaczy ze on chce stworzyc +build_info na / ? czy alien moze nie do konca dokonac prawidlowa konwersje ( jestem slaby jesli chodzi o te systemy, dopiero nabieram oglady :) )

10

? ale netbsd to zupełnie inny system operacyjny, to nie ma szansy pójść!!! Przecież to binarki są na pewno inne, no chyba, że o czymś nie wiem (na razie wziąłem temat na logikę).  Pozatym tgz najlepiej rozpakowuje się

tar -xvjf nazwa_archiwum.tgz

Stąd możesz spróbować, ale te są ztarowane i potraktowane bzipem2:
http://gentoo.atariforge.org/files/sys-devel/
Wątpię czy to zadziała, możliwe, że autoconf sam ma jakieś zależności.. Najlepiej jakbyś ściągnął tą całą dystrybucję http://gentoo.atariforge.org/ i ją sobie zainstalował. Ale z tego co widzę to nie ma na razie do tego jakiejś instrukcji obsługi i informacji z czym się to je.. Ktoś to podobno instalował i nawet działało, ale gwarancji nie dam. Jedyny bonus jest taki, że to w miarę świeży soft, ale może wymagać nowszego kernela mintowego.. Ale w sumie to się nie znam. Zawsze możesz się dopytać na mintliście.

=========================================
[www] https://nokturnal.pl
[ 16/32 bit Atari development wiki] https://bus-error.nokturnal.pl

11 Ostatnio edytowany przez jury (2010-11-02 07:15:29)

OK, pewnie masz rację, ale pisałem że te systemy dopiero poznaję. Na PC zainstalowałem sobie niedawno Ubuntu i jak ostatnio nie mogłem znaleźć czegoś  w .deb to poleciał .rpm z dystrybucji RedHat'owych przez aliena i bez żadnych problemów działa. No cóż chyba popłynąłem w temacie uznania możliwości aliena :D

12

-mwindows -lmingw32 muahahaha

btw. skoro w przykladzie bylo #indclude <SDL.h> to nie trzeba bylo tego zmieniac na SDL/SDL.h, a wystarczylo podac gcc lokalizacje tych naglowkow (co robi wspomniany przez saulot sdl-config --cflags) poprzez parametr -I

u mnie sdl-config --cflags daje: -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT
u ciebie widze ze tez powinno wskazywac -I/usr/include/SDL (tj. w tym katalogu leza te naglowki, w rpm ze strony ktora podales)

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep

13

jellonek napisał/a:

-mwindows -lmingw32 muahahaha

No fakt, niedoczytałem, że nie chodzi o winde, my bad.

jury napisał/a:

i podczas kompilacji dostaję: fatal error SDL.h not found. W /usr/include/SDL oczywiście jest SDL.h, w c:\mint\mint.cnf dodałem ścieżkę do /usr/include/SDL i jak robię echo $PATH to pokazuje się ta ścieżka. Coś tu nie rozumiem, pomóżcie bo nie skompiluję najprostszego przykładu dla SDLa :)


A ja pamiętam, że Ty się miałeś zajmować aktualnie CZYMŚ INNYM. ;) :P

Trzy najpopularniejsze w Polsce platformy 8-bit: Piwo, Wino i Wódka.
http://ym-digital.i-demo.pl/ - http://yerzmyey.i-demo.pl - https://soundcloud.com/yerzmyey
ŻADEN DOBRY UCZYNEK NIE UJDZIE BEZ KARY.

15 Ostatnio edytowany przez jury (2010-11-02 21:03:15)

jellonek napisał/a:

u mnie sdl-config --cflags daje: -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT
u ciebie widze ze tez powinno wskazywac -I/usr/include/SDL (tj. w tym katalogu leza te naglowki, w rpm ze strony ktora podales)

Tak, dokładnie też to miejsce wskazuje jak dam sdl-config --cflags, natomiast jak juz daje gcc 'sdl-config --cflags' to krzyczy że sdl-config --cflags: no such file or directory, wrrrr.

16 Ostatnio edytowany przez bugz_ (2010-11-02 21:58:09)

jury napisał/a:
jellonek napisał/a:

u mnie sdl-config --cflags daje: -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT
u ciebie widze ze tez powinno wskazywac -I/usr/include/SDL (tj. w tym katalogu leza te naglowki, w rpm ze strony ktora podales)

Tak, dokładnie też to miejsce wskazuje jak dam sdl-config --cflags, natomiast jak juz daje gcc 'sdl-config --cflags' to krzyczy że sdl-config --cflags: no such file or directory, wrrrr.

hmm.. jak dla mnie tam nie powinno byc ' tylko ` (0x60 ASCII)
gcc `sdl-config --cflags`

17

jury: bo dajesz złe cudzysłowy i ci nie wstawia.

gcc .. `sdl-config --cflags`..

powinno zadziałać.

=========================================
[www] https://nokturnal.pl
[ 16/32 bit Atari development wiki] https://bus-error.nokturnal.pl

18 Ostatnio edytowany przez jellonek (2010-11-02 22:13:29)

bo dales "nie w ta strone"
aby ominac tego typu roznice, tj. ` od ' - polecam uzywac konstrukcji $(sdl-config --cflags) ;)
albo po prostu przepisz wynik polecenia, tj. gcc -I/usr/include/SDL -D... file.c

saulot - ucz dobrych zwyczajow, a ` do nich nie nalezy ;)

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep

19

jellonek: dobre zwyczaje to kwestia względna. funkcja celu jest taka, żeby program się skompilował. Jakbym chciał uczyć to poleciłbym jakiś podręcznik do basha.

=========================================
[www] https://nokturnal.pl
[ 16/32 bit Atari development wiki] https://bus-error.nokturnal.pl

20 Ostatnio edytowany przez jury (2010-11-03 07:24:28)

Sorki Panowie, wprowadziłem trochę zamieszania, nie użyłem ' tylko coś co wyglądało jak: ´.

saulot napisał/a:

UWAGA: zwróć uwagę na apostrofy inaczej bash sypnie błędami i powie Ci f**k you.

Za wikipedia:
http://pl.wikipedia.org/wiki/Apostrof

"Poprawny z punktu widzenia typografii apostrof to ? ( tu się coś skaszaniło, przy edycji było OK ) (Unicode: U+2019). Jest to mały łuk, lekko pochylony od dołu po stronie lewej ku górze w prawo"

I tak wyglądający właśnie znak użyłem, tyle że nie U2019 lecz zapewne B4 ASCII, oczywiście próbowałem znaleźć inne znaki podobne czyli ' lub ` ale coś mi się nie udało. Dzisiaj mam w planach zejść do katakumb ( piwnicy ) i przynieść inną klawiaturę.

21 Ostatnio edytowany przez jellonek (2010-11-03 08:43:11)

ztcp ten znak - ` - nazywany jest "tick" czy cos podobnego
ale powtarzam - zamiast pisac gcc `sdl-config ...`, uzyj konstrukcji gcc $(sdl-config ...)

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep

22 Ostatnio edytowany przez jury (2010-11-03 09:08:12)

spoko, spoko, nie krzycz na mnie :P próbowałem i spokojnie działa, ale saulot też już podał wcześniej prawidłowe rozwiązanie

saulot napisał/a:

spróbuj:

gcc -Iścieżka do inkludów 1.c -o 1.prg -lSDL -lgem -lldg -lm -Lścieżka do libów

Tyle że jeszcze mi krzyczy o trzech undefined references więc coś nie tak mam jeszcze z samym środowiskiem.
Będę wieczorem walczył dalej, bo się nie poddam po tym jak poczytałem sobie co to SDL i jakie cuda umie :D

23

jury: to może jeszcze przeklej logi, to przynajmniej będzie wiadomo czego brakuje.

=========================================
[www] https://nokturnal.pl
[ 16/32 bit Atari development wiki] https://bus-error.nokturnal.pl

24

Przekleiłbym jakby AA działało prawidłowo na Highwire :D
Kurka, fajna przeglądarka, ale jak to zwykle bywa w świecie 16-32-bit, porzucona 364 lata temu :)
Jak będę przy Falconie wieczorkiem to przepiszę i podeślę.
Kojarzę że coś chodziło o raczej popularną funkcję strlcpy, ale nie jestem na 100% pewien.

25

jury: są już pakiety rpm z nowszym autoconfem i automake'm etc.. na stronie Keitha Scrogginsa, jest też ldg. Nie wiem czy czytasz mintlistę.

=========================================
[www] https://nokturnal.pl
[ 16/32 bit Atari development wiki] https://bus-error.nokturnal.pl