[gelöst]FreeBSD Kommandozeilenanwendung öffnet kein Terminal

Für Fragen rund um die Ide und zum Debugger
Antworten
Marsmännchen
Beiträge: 294
Registriert: So 4. Mai 2014, 21:32
OS, Lazarus, FPC: Windows 10 64bit, Lazarus 2.0.10
CPU-Target: 64bit
Wohnort: Oranienburg

[gelöst]FreeBSD Kommandozeilenanwendung öffnet kein Terminal

Beitrag von Marsmännchen »

Hi,

ich habe unter FreeBSD mit Lazarus ein Testprogramm für die Kommandozeile erstellt. Ein ganz banales Hallo-Welt-Ding mit Writeln.

Das Projekt startet und kompiliert auch korrekt (laut Nachrichtenfenster). Nur: es passiert nichts Sichtbares. Von Windows her kennt man das ja, dass sich dann ein Terminalfenster öffnet und die Ausgabe erscheint. Hier in FreeBSD erstmal nix.

Habt ihr eine Idee, woran das liegen könnte? Google-Suche war leider erfolglos.
Zuletzt geändert von Marsmännchen am So 22. Jan 2017, 19:24, insgesamt 1-mal geändert.
Ich mag Pascal...

Benutzeravatar
photor
Beiträge: 443
Registriert: Mo 24. Jan 2011, 21:38
OS, Lazarus, FPC: Arch Linux: L 2.2.6 FPC 3.2.2 (Gtk2)
CPU-Target: 64Bit

Re: FreeBSD Kommandozeilenanwendung öffnet kein Terminal

Beitrag von photor »

Marsmännchen hat geschrieben:Hi,

ich habe unter FreeBSD mit Lazarus ein Testprogramm für die Kommandozeile erstellt. Ein ganz banales Hallo-Welt-Ding mit Writeln.

Das Projekt startet und kompiliert auch korrekt (laut Nachrichtenfenster). Nur: es passiert nichts Sichtbares.

Ich hab' das noch nicht probiert und habe keine Ahnung, ob ein Konsolenprogramm ein solches eigenständig aufmacht. Ich glaube fast: "nein"[*]. Siehst Du denn etwas, wenn Du ein Terminal öffnest und das Programm darin aufrufst? (Ich glaube fast: "ja")

Ciao,

Photor


[*] und dann weiß Dein Programm natürlich nicht, wohin mit der Ausgabe.

Marsmännchen
Beiträge: 294
Registriert: So 4. Mai 2014, 21:32
OS, Lazarus, FPC: Windows 10 64bit, Lazarus 2.0.10
CPU-Target: 64bit
Wohnort: Oranienburg

Re: FreeBSD Kommandozeilenanwendung öffnet kein Terminal

Beitrag von Marsmännchen »

Hi,

kann man Lazarus denn irgenwie per Einstellung sagen "wohin" es die Ausgabe senden soll? Ich hatte schon in den Settings gestöbert (sowohl Projekt als auch Lazarus), aber nix gefunden.

Im Terminal kann ich das Programm mit

Code: Alles auswählen

./hallowelt
starten.

Ich habs versucht über den Dateimanager von Xfce (Doppelklick auf Programmsymbol) da passiert wiederum nichts.
Ich mag Pascal...

creed steiger
Beiträge: 957
Registriert: Mo 11. Sep 2006, 22:56

Re: FreeBSD Kommandozeilenanwendung öffnet kein Terminal

Beitrag von creed steiger »

Wahrscheinlich schliesst sich nach Ende des Programms der Terminal.

mach mal ganz am Ende ein Readln rein, dann wartet das Programm auf eine Tasteneingabe
und das Fenster wird sich nicht schliessen.

Warf
Beiträge: 1908
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: FreeBSD Kommandozeilenanwendung öffnet kein Terminal

Beitrag von Warf »

Unter Unixoiden Systemen wird kein separates Konsolenfenster geöffnet wenn ein Prozess gestartet wird. Unter Linux kann man in Lazarus über das Menü Ansicht->Debugger Fenster->Terminal Ausgabe (oder so ähnlich) ein Fenster öffnen über welches die STD In und Out geht. Ansonsten kann man über Menü Start->Startparameter ein Terminal Programm auswählen (z.B. xTerm) über welches die Ausgabe laufen soll.

Ich bin kein BSD Profi, allerdings funktioniert das so problemlos unter OSX und Linux, daher bin ich recht optimistisch das dies auch unter BSD funktionieren sollte

Marsmännchen
Beiträge: 294
Registriert: So 4. Mai 2014, 21:32
OS, Lazarus, FPC: Windows 10 64bit, Lazarus 2.0.10
CPU-Target: 64bit
Wohnort: Oranienburg

Re: FreeBSD Kommandozeilenanwendung öffnet kein Terminal

Beitrag von Marsmännchen »

Ich habs hinbekommen.

Für FreeBSD 11: Bei Start/Startparameter im Register Lokal Checkbox anklicken: "Startprogramm verwenden"
Bei mir wird dabei auf /usr/local/bin/xterm verwiesen.
Wenn man dann versucht, ein Programm so zu starten, bekommt man eine Fehlermeldung,
xterm versucht unter /usr/local/share/lazarus-1.6.2/tools das Script runwait.sh aufzurufen. Für das hat man aber als nomaler User keine execute-Rechte, Also wird einem gesagt: permission denied.
Also für dieses Script die Zugriffsrechte so ändern, dass man Zugriff erhält und diese Datei ausführen darf. Ich habe es in meinem Fall über die Gruppenrechte gemacht.
Jetzt klappt es bei mir prima.

EDIT: Eine kleine Unschönheit: xterm kann keine deutschen Umlaute :cry:
Ich mag Pascal...

Benutzeravatar
photor
Beiträge: 443
Registriert: Mo 24. Jan 2011, 21:38
OS, Lazarus, FPC: Arch Linux: L 2.2.6 FPC 3.2.2 (Gtk2)
CPU-Target: 64Bit

Re: FreeBSD Kommandozeilenanwendung öffnet kein Terminal

Beitrag von photor »

Marsmännchen hat geschrieben:Eine kleine Unschönheit: xterm kann keine deutschen Umlaute :cry:

Hm. Ich habe momentan kein XTerm installiert. Aber eigentlich wird in dem ja auch nur eine Shell (meist [cmd]bash[/cmd]) ausgeführt. Diese Shell muss ein entsprechendes Setting bekommen. Das wird in ~/.profile oder ~/.bashrc (bzw. in den entsprechenden systemweiten Files unter /etc) gesetzt.

Welche Variablen gesetzt sind, bekommst Du mit dem Befehl env heraus. Die Darstellung wird mit den folgenden Variablen manipuliert und sehen bei mir folgendermaßen aus (etliche Variablen wg. Übersichtlichkeit gelöscht):

Code: Alles auswählen

[photor@Picard ~]$ env
LC_MEASUREMENT=de_DE.utf8
LC_PAPER=de_DE.utf8
LC_MONETARY=de_DE.utf8
 
LANG=de_DE.utf8
 
GDM_LANG=de_DE.utf8
 
LC_COLLATE=C
LC_NUMERIC=de_DE.utf8
 
SHELL=/bin/bash
 
PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl
 
LC_TIME=de_DE.utf8
_=/usr/bin/env
[photor@Picard ~]$

Damit sollte es eigentlcih gehen.

Hope that helps,

Photor

Marsmännchen
Beiträge: 294
Registriert: So 4. Mai 2014, 21:32
OS, Lazarus, FPC: Windows 10 64bit, Lazarus 2.0.10
CPU-Target: 64bit
Wohnort: Oranienburg

Re: FreeBSD Kommandozeilenanwendung öffnet kein Terminal

Beitrag von Marsmännchen »

Jetzt klappts bei mir auch.
Problem war, dass ich (entsprechend den Ausführungen im FreeBSD-Handbuch) die locale-Einstellungen mit de_DE.ISO8859-1 gemacht habe. Lazarus verwendet ja standardmäßig utf-8. Nachdem ich auf ISO umgestellt habe, wird alles korrekt ausgegeben.

Hast du de_DE.utf8 bei dir nur wegen Lazarus eingestellt oder hat das noch andere Vorteile gegenüber dem ISO-Zeichensatz?
Ich mag Pascal...

Benutzeravatar
photor
Beiträge: 443
Registriert: Mo 24. Jan 2011, 21:38
OS, Lazarus, FPC: Arch Linux: L 2.2.6 FPC 3.2.2 (Gtk2)
CPU-Target: 64Bit

Re: FreeBSD Kommandozeilenanwendung öffnet kein Terminal

Beitrag von photor »

Marsmännchen hat geschrieben:Hast du de_DE.utf8 bei dir nur wegen Lazarus eingestellt oder hat das noch andere Vorteile gegenüber dem ISO-Zeichensatz?

Hm. Gute Frage. Ich habe es irgendwann so eingestellt (wahrscheinlich irgendwo den Hinweis bekommen) und dann nicht mehr geändert, da alles unauffällig blieb und ich keine Nachteile festgestellt habe 8)

Ciao,

Photor

Antworten