Strona 1 z 1

Pascal tryb graficzny

: 09 gru 2009, 20:45
autor: snekkar
Witam serdecznie.
Mam projekt do napisania i przydałby mi sie tryb graficzny w pascalu ale nie wiem jak to zrobic... dolaczam biblioteke libvga ale dostaje taki oto komunikat

Kod: Zaznacz cały

fpc "grafika.pas" (w katalogu /home/bartek/workspace/Roboczy)
Free Pascal Compiler version 2.2.4-3 [2009/06/04] for x86_64
Copyright (c) 1993-2008 by Florian Klaempfl
Target OS: Linux for x86-64
Compiling grafika.pas
Fatal: Can't find unit libvga used by grafika
Fatal: Compilation aborted
Error: /usr/bin/ppcx64 returned an error exitcode (normal if you did not specify a source file to be compiled)
Kompilacja nie powiodła się
bardzo prosze o pomoc... i prosze w miare prosto bo linuxa uzywam od nie dawna

Odp: Pascal tryb graficzny

: 09 gru 2009, 20:54
autor: macer
Konsola:

Kod: Zaznacz cały

sudo apt-get install libsvga1
Polecam stronę http://packages.ubuntu.com/, a dokładniej pakiet znalazłem tu(trafiłem z googla :D)

Ja nie zajmuję się pascalem a pakiet już był:shock:...ale możesz spróbować :)

Jak widać pakiet zawiera plik "libvga.so" :)

Odp: Pascal tryb graficzny

: 09 gru 2009, 22:02
autor: snekkar
niestety to nie pomoglo...

a czy kompilatorowi nie trzeba podawac jakiejs ścieżki do tej biblioteki??

Odp: Pascal tryb graficzny

: 09 gru 2009, 22:22
autor: macer
Podasz polecenie do kompilatora jakiego użyłeś? //sorry teraz zauważyłem
Może skojarze jaki to kompilator i coś znajdę...

A poza tym, do bibliotek dynamicznych(czy tam shared) w /usr/lib chyba nie trzeba podawać nic dodatkowego do kompilatora...więc to chyba nie to...

Chyba coś znalazłem...

Spróbuj zmienić(w /usr/lib) libvga.1.4.2.so na libvga.so.

Lub konsola...

Kod: Zaznacz cały

cd /usr/lib
ln -s libvga.so.1.4.2 libvga.so

EDIT:
A jak to nie zadziała, to spróbuj dodać do kompilatora

Kod: Zaznacz cały

-lvga

Odp: Pascal tryb graficzny

: 09 gru 2009, 22:39
autor: snekkar
nic nie pomaga...

po wywolaniu z konsoli kompilatora

Kod: Zaznacz cały

ln -s libvga.so.1.4.2 libvga.so
kompilator to fpc i w katalogu

Kod: Zaznacz cały

/usr/lib/fpc/2.2.4/units/x86_64-linux/svgalib
jest svgalib ale z rozszerzeniem.o

Odp: Pascal tryb graficzny

: 09 gru 2009, 23:28
autor: jankro
Cześć!

Aby mieć plik libvga.so w katalogu /usr/lib/ należy zainstalować pakiet:

libsvga1-dev

Pozdrawiam!

Odp: Pascal tryb graficzny

: 10 gru 2009, 16:15
autor: macer
jankro,
To chyba też będzie ta biblioteka...
Ale w spisie plików pakietu libsvga1 ten plik też jest(tylko z wersją w nazwie).

snekkar
Jak masz z rozszerzeniem .o, to prościej być nie może ;)

To znaczy chyba musisz skompilować tak(mam nadzieję że niczego nie namieszałem ;))

Kod: Zaznacz cały

fpc "grafika.pas" -c /usr/lib/fpc/2.2.4/units/x86_64-linux/svgalib/svgalib.o
Chyba zadziała jeśli fpc jest z kolekcji gcc, bo nie wiem ;)

Chociaż, chyba pomyliłem składnię polecenia...

Odp: Pascal tryb graficzny

: 10 gru 2009, 18:54
autor: snekkar
nie jestem pewien co pomoglo ale chyba instalacja paczki svgalib1-dev. thx jankro

macer, probowalem tego co napisales ale nie dziala... ale wielkie dzieki za chec pomocy

mam jescze jeden problem...
teraz wpisuje w kodzie initgraph i nie wiem jak sciezke mam podać do sterownika grafiki...

Odp: Pascal tryb graficzny

: 10 gru 2009, 19:01
autor: macer
Podasz trochę kodu?
Może coś znajdę...

Odp: Pascal tryb graficzny

: 10 gru 2009, 19:10
autor: snekkar
kodu?? hehe :) oto co mam:

Kod: Zaznacz cały

program grafika;

uses svgalib,crt;
var
GraphDriver,GraphMode:smallint;
begin 
GraphDriver:=0;
GraphMode:=0;
initgraph(GraphDriver,GraphMode,'');
closegraph;
end.
a takie wywala bledy

Kod: Zaznacz cały

fpc "grafika.pas" (w katalogu /home/bartek/workspace/Roboczy)
Free Pascal Compiler version 2.2.4-3 [2009/06/04] for x86_64
Copyright (c) 1993-2008 by Florian Klaempfl
Target OS: Linux for x86-64
Compiling grafika.pas
grafika.pas(9,10) Error: Identifier not found "initgraph"
grafika.pas(10,11) Error: Identifier not found "closegraph"
grafika.pas(12) Fatal: There were 2 errors compiling module, stopping
Fatal: Compilation aborted
Kompilacja nie powiodła się
Error: /usr/bin/ppcx64 returned an error exitcode (normal if you did not specify a source file to be compiled)
czytalem gdzies ze w sciezce (3 argument) nie trzeba nic podawac jesli nie wykorzystuje sei Borlandowskich czcionek

a jak usune initgraph to skompiluje ale jest takie ostrzezenie, co to moze znaczyc...?

Kod: Zaznacz cały

/usr/bin/ld: warning: link.res contains output sections; did you forget -T?

Odp: Pascal tryb graficzny

: 10 gru 2009, 19:57
autor: warlock24
[quote="snekkar"]kodu?? hehe :) oto co mam:

Kod: Zaznacz cały

initgraph(GraphDriver,GraphMode,'');
closegraph;

Kod: Zaznacz cały

grafika.pas(9,10) Error: Identifier not found "initgraph"
grafika.pas(10,11) Error: Identifier not found "closegraph"
czemu zakłądasz że w module svgalib istnieją zdefiniwane funkcje initgraph i closegraph? Przeglądam dokumentację tej biblioteki i ich tam nie widzę :shock:

lista funkcji w bibliotece svgalib
http://www.freepascal.org/docs-html/pac ... dex-5.html

Odp: Pascal tryb graficzny

: 10 gru 2009, 20:06
autor: snekkar
to mozesz mi podpowiedziec jak zainicjalizowac tryb graficzny?? czy inna biblioteke trzeba??

Odp: Pascal tryb graficzny

: 10 gru 2009, 20:28
autor: warlock24
snekkar pisze:to mozesz mi podpowiedziec jak zainicjalizowac tryb graficzny?? czy inna biblioteke trzeba??
Pacalem zajmowałem się bardzo dawno temu ale wydaje mi się że
kod który ty napisałeś powinien korzystać z modułu graph.

Kod: Zaznacz cały

program grafika;

uses graph,crt;
var
GraphDriver,GraphMode:smallint;
begin 
GraphDriver:=0;
GraphMode:=0;
initgraph(GraphDriver,GraphMode,'');
closegraph;
end.
powyższy kod prawdopodobnie skompilowałby się tylko w Turbo Pascal'u i tylko w windows - coś mi się znaje że w free pascalu tego modułu nie ma


Jeżeli chcesz do wyświetlania grafiki użyć svgalib to najprostszy program wyglądałby tak

Kod: Zaznacz cały

program grafika;

uses svgalib,crt;
begin 
   vga_init();
   vga_setmode(G320x200x256);
   vga_setcolor(4);
   vga_drawpixel(10, 10);
   
twój kod rysujący linie i takie tam

   vga_setmode(GTEXT);
end.
kompilacja w terminalu

Kod: Zaznacz cały

fpc in.pas
uruchomienie skompilowanego programu

Kod: Zaznacz cały

sudo ./in
Uwaga!!! SvgaLib to archaiczna technologia wyświetlania grafiki, której już nikt nie używa, a do uruchomienia programów ją wykorzystujących trzeba być rootem dlatego sudo przed nazwą programu

Odp: Pascal tryb graficzny

: 11 gru 2009, 14:17
autor: snekkar
dziekuje :)