Portál AbcLinuxu, 12. května 2025 06:46

Dotaz: FreePascal programy v Terminálu

26.9.2005 07:00 Elfman | skóre: 7 | blog: Poprvé v Linuxu | Vamberk
FreePascal programy v Terminálu
Přečteno: 269×
Odpovědět | Admin
Dobrý den,

pokouším se programovat pro Linux v programovacím jazyku Free Pascal (32 bitů, PM). Když si napíšu program pro textový režim, tak nevím, jak ho rozchodit.

Pokud např. zkouším OpenGL, tak se normálně otevře okno, kam se kreslí. Když udělám něco jako "deamona", tak se spustí na pozadí a třeba zapisuje do LOG souboru.

Když ale udělám jednoduchý program, např.:

(* uses SysUtils,BaseUnix; *) (* at tam toto je nebo neni, chova se to stejne *)
begin
Writeln('Hello');
end.

Když ho spustím normálně v dvojitým poklepáním (binární soubor se samozřejmě vytvoří hned v kompilaci), tak se hned ukončí (ani se nic neobjeví), což je logické. Pokud tam třeba doplním ještě

Readln;

tak se spustí a čeká na stisk klávesy, ale běží na pozadí, takže mu ji nemám (jako "standardní" uživatel) jak předat. Musím ho ukončit příkazem KILL.

Když ale napíšu jeho název v konzoli, i když jsem v daném adresáři, tak mi to napíše "neznámý příkaz". Jak mám zařídit, aby šel spustit v konzoli, jako např. jeho samotný kompilátor PPC386?

Předem díky.
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

26.9.2005 07:43 Ondra
Rozbalit Rozbalit vše Re: FreePascal programy v Terminálu
Odpovědět | | Sbalit | Link | Blokovat | Admin
>>Když ale napíšu jeho název v konzoli, i když jsem v daném adresáři,

Pokud nemate adresar v promenne PATH, tezko spustite program pouhym napsanim jeho jmena. Musite bud uvest celou cestu - /home/uzivatel/..../bin/program - nebo odkaz na aktualni adresar (tecka + lomitko) - ./program. Samozrejme musi mit program tez nastavena prava ke spusteni.

26.9.2005 08:36 Elfman | skóre: 7 | blog: Poprvé v Linuxu | Vamberk
Rozbalit Rozbalit vše Re: FreePascal programy v Terminálu
Aha, tak to mi nedošlo. Jsem ještě zvyklý na MS-DOS :-(

No, on ten adresář je /usr/local/bin/pasfiles, protože tady mám i Free Pascal (ten spustit jde jen napsáním názvu binárního souboru, takže se asi do PATH nějak přidal - mohl byste mi prosím říci, jak se to případně dělá?).

Vyzkouším... děkuji.
26.9.2005 09:46 Robert Krátký | skóre: 94 | blog: Robertův bloček
Rozbalit Rozbalit vše Re: FreePascal programy v Terminálu
Např. v souboru ~/.bash_profile - do řádku začínajícího PATH přidej požadovaný adresář. Pokud tam takový řádek ještě není, tak si ho vytvoř.
26.9.2005 10:44 Elfman | skóre: 7 | blog: Poprvé v Linuxu | Vamberk
Rozbalit Rozbalit vše Re: FreePascal programy v Terminálu
Díky.
27.9.2005 07:09 Elfman | skóre: 7 | blog: Poprvé v Linuxu | Vamberk
Rozbalit Rozbalit vše Re: FreePascal programy v Terminálu
Bylo to ono. Prostě jsem jen blbě zadával název toho programu. Už to chodí perfektně...
26.9.2005 14:59 Lukáš Rýdlo | skóre: 18 | blog: Silný kafe | Brno
Rozbalit Rozbalit vše Re: FreePascal programy v Terminálu
Odpovědět | | Sbalit | Link | Blokovat | Admin
V fpc jsem programoval minuly semestr ukoly do Delphi (jen na terminal) ;-) a vypadlo to asi takto:

fpc -Sd program.dpr resp. pro ciste pascalovske programy fpc. program.pas

binarka musi mit samozrejme prava alespon r-x------ a spousti se ./program z aktualniho adresare...

Jinak jediny problem, ktery jsem mel, byl s knihovnou CRT, jelikoz na textove konzoli se zluta zobrazuje jako oranzova (v xtermu je to v pohode) a byla tam jeste nejaka dalsi zamena, takze jsem nektere barevne kombinace v konzoli nevidel a v xtermu videl...

A co se tyce problemu po odkliknuti -- v Linuxu se prece pouziva Bash a ne klikatka :-D

P.S.: Pokud vim, tak SysUtils se nacitaji automaticky, takze se nepisi za uses a BaseUnix je myslim stejny pripad...
θηριον ειμι
27.9.2005 07:39 Elfman | skóre: 7 | blog: Poprvé v Linuxu | Vamberk
Rozbalit Rozbalit vše Re: FreePascal programy v Terminálu
Díky, už to chodí. Ta práva tam byla, ale spouštěl jsem to špatným příkazem (nenapadlo mne, že se musí použít aktuální adresář).

CRT mi funguje podobně...

Samozřejmě, že se používá Terminál, ale rád bych jednou psal i aplikace pro uživatele neprofesionály, kteří budou používat Linux třeba jen na hraní, takže jsem si chtěl ověřit, proč to po odkliknutí jde a v Bashi nejde...

SysUtils a BaseUnix jsem našel kdysi v jednom FP demu v USES, tak jsem si myslel, že je potřeba je načítat (je ale pravda, že když jsem napsal ten HELLO program bez nich, chodil taky).

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.