[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: 638
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Linux Mint 19.2 , FPC 3.0.4 , Lazarus 2.0.x -Win10 & XE7Pro
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.
Linux Mint 19.3 , FPC-Version: 3.3.1 , Lazarus 2.1.0
+ Delphi XE7SP1

wp_xyz
Beiträge: 3217
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: 638
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Linux Mint 19.2 , FPC 3.0.4 , Lazarus 2.0.x -Win10 & XE7Pro
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
Linux Mint 19.3 , FPC-Version: 3.3.1 , Lazarus 2.1.0
+ Delphi XE7SP1

wp_xyz
Beiträge: 3217
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: 638
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Linux Mint 19.2 , FPC 3.0.4 , Lazarus 2.0.x -Win10 & XE7Pro
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
Linux Mint 19.3 , FPC-Version: 3.3.1 , Lazarus 2.1.0
+ Delphi XE7SP1

Antworten