[gelöst] $(TargetCmdLine) vs ExtractFilePath(Paramstr(0))

Für Fragen rund um die Ide und zum Debugger
Antworten
Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 1206
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Manjaro Linux, Mint und Windows 10 ,Lazarus 3.99, FPC-Version: 3.3.1
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

[gelöst] $(TargetCmdLine) vs ExtractFilePath(Paramstr(0))

Beitrag von kralle »

OS: Linux Mint 18.2 Cinnamon 64-Bit
FPC: 3.02
Laz: 1.9

Moin,

nach dem Compilieren soll eine Anwendung in "wine" gestartet werden und ich benutze deshalb den Aufruf "/usr/bin/wine $(TargetCmdLine)".

Jetzt liefert ein

Code: Alles auswählen

ExtractFilePath(Paramstr(0))
in der Anwendung nach dem Start unter Linux als Startpfad:
"/home/laz-user/projekte/Firebird Demo/linux/".
Für die Anwendung wenn sie für Windows erstellt wird, würde der Pfad
"/home/laz-user/projekte/Firebird Demo/win32/" bzw. "/home/laz-user/projekte/Firebird Demo/win64/" heißen.

Bei den Windowsversionen kommt es nach dem Compilieren aber zu der Fehlermeldung:
wine: cannot find '/home/laz-user/projekte/Firebird'
Das heißt der Pfad ist viel kürzer.
Warum?

Gruß HEiko
Zuletzt geändert von kralle am So 23. Jul 2017, 11:52, insgesamt 1-mal geändert.
OS: MX Linux, Linux Mint und Windows 10
FPC-Version: 3.3.1 , Lazarus 3.99
+ Delphi XE7SP1

wp_xyz
Beiträge: 5191
Registriert: Fr 8. Apr 2011, 09:01

Re: $(TargetCmdLine) vs ExtractFilePath(Paramstr(0))

Beitrag von wp_xyz »

Das Leerzeichen in "Firebird Demo"? Starte mal per:

Code: Alles auswählen

/usr/bin/wine "$(TargetCmdLine)"

Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 1206
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Manjaro Linux, Mint und Windows 10 ,Lazarus 3.99, FPC-Version: 3.3.1
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

Re: $(TargetCmdLine) vs ExtractFilePath(Paramstr(0))

Beitrag von kralle »

Moin,
wp_xyz hat geschrieben:Das Leerzeichen in "Firebird Demo"? Starte mal per:

Code: Alles auswählen

/usr/bin/wine "$(TargetCmdLine)"
Aua, da würde ich jetzt nicht drauf gekommen. Danke.
Ist das Grundsätzlich bei allen Variablen so? Auch bei $(TargetOS) , $(BuildMode) usw?

Gruß Heiko
OS: MX Linux, Linux Mint und Windows 10
FPC-Version: 3.3.1 , Lazarus 3.99
+ Delphi XE7SP1

wp_xyz
Beiträge: 5191
Registriert: Fr 8. Apr 2011, 09:01

Re: $(TargetCmdLine) vs ExtractFilePath(Paramstr(0))

Beitrag von wp_xyz »

Das hat nichts mit den Variablen zu tun, sondern mit der Shell, die einen Parameter mit Leerzeichen als zwei (oder mehr - je nach Anzahl der Leerzeichen) Parameter interpretiert. Durch die umschließenden Anführungszeichen wird der Shell mitgeteilt, dass es sich um einen einzigen Parameter handelt.

Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 1206
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Manjaro Linux, Mint und Windows 10 ,Lazarus 3.99, FPC-Version: 3.3.1
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

Re: $(TargetCmdLine) vs ExtractFilePath(Paramstr(0))

Beitrag von kralle »

Moin,
wp_xyz hat geschrieben:Das hat nichts mit den Variablen zu tun, sondern mit der Shell, die einen Parameter mit Leerzeichen als zwei (oder mehr - je nach Anzahl der Leerzeichen) Parameter interpretiert. Durch die umschließenden Anführungszeichen wird der Shell mitgeteilt, dass es sich um einen einzigen Parameter handelt.
Okay, danke.
Gruß Heiko
OS: MX Linux, Linux Mint und Windows 10
FPC-Version: 3.3.1 , Lazarus 3.99
+ Delphi XE7SP1

Antworten