Pascal tryb graficzny

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
snekkar
Piegowaty Guziec
Piegowaty Guziec
Posty: 29
Rejestracja: 29 paź 2009, 01:03
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: GNOME
Architektura: x86_64

Pascal tryb graficzny

Post 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
macer
Wytworny Kaczor
Wytworny Kaczor
Posty: 453
Rejestracja: 12 wrz 2009, 21:07
Wersja Ubuntu: inny OS

Odp: Pascal tryb graficzny

Post 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" :)
snekkar
Piegowaty Guziec
Piegowaty Guziec
Posty: 29
Rejestracja: 29 paź 2009, 01:03
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: Pascal tryb graficzny

Post autor: snekkar »

niestety to nie pomoglo...

a czy kompilatorowi nie trzeba podawac jakiejs ścieżki do tej biblioteki??
macer
Wytworny Kaczor
Wytworny Kaczor
Posty: 453
Rejestracja: 12 wrz 2009, 21:07
Wersja Ubuntu: inny OS

Odp: Pascal tryb graficzny

Post 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
snekkar
Piegowaty Guziec
Piegowaty Guziec
Posty: 29
Rejestracja: 29 paź 2009, 01:03
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: Pascal tryb graficzny

Post 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
Awatar użytkownika
jankro
Piegowaty Guziec
Piegowaty Guziec
Posty: 24
Rejestracja: 05 wrz 2009, 17:15
Płeć: Mężczyzna
Wersja Ubuntu: 18.04
Środowisko graficzne: Cinnamon
Architektura: x86_64

Odp: Pascal tryb graficzny

Post autor: jankro »

Cześć!

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

libsvga1-dev

Pozdrawiam!
macer
Wytworny Kaczor
Wytworny Kaczor
Posty: 453
Rejestracja: 12 wrz 2009, 21:07
Wersja Ubuntu: inny OS

Odp: Pascal tryb graficzny

Post 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...
snekkar
Piegowaty Guziec
Piegowaty Guziec
Posty: 29
Rejestracja: 29 paź 2009, 01:03
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: Pascal tryb graficzny

Post 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...
macer
Wytworny Kaczor
Wytworny Kaczor
Posty: 453
Rejestracja: 12 wrz 2009, 21:07
Wersja Ubuntu: inny OS

Odp: Pascal tryb graficzny

Post autor: macer »

Podasz trochę kodu?
Może coś znajdę...
snekkar
Piegowaty Guziec
Piegowaty Guziec
Posty: 29
Rejestracja: 29 paź 2009, 01:03
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: Pascal tryb graficzny

Post 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?
Awatar użytkownika
warlock24
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 102
Rejestracja: 20 cze 2008, 22:35
Płeć: Mężczyzna
Wersja Ubuntu: 12.10
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: Pascal tryb graficzny

Post 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
snekkar
Piegowaty Guziec
Piegowaty Guziec
Posty: 29
Rejestracja: 29 paź 2009, 01:03
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: Pascal tryb graficzny

Post autor: snekkar »

to mozesz mi podpowiedziec jak zainicjalizowac tryb graficzny?? czy inna biblioteke trzeba??
Awatar użytkownika
warlock24
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 102
Rejestracja: 20 cze 2008, 22:35
Płeć: Mężczyzna
Wersja Ubuntu: 12.10
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: Pascal tryb graficzny

Post 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
snekkar
Piegowaty Guziec
Piegowaty Guziec
Posty: 29
Rejestracja: 29 paź 2009, 01:03
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: Pascal tryb graficzny

Post autor: snekkar »

dziekuje :)
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 5 gości