Projekteinstellungen - Pfade - plattformübergreifend

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Michel
Beiträge: 35
Registriert: Sa 4. Dez 2021, 11:43
OS, Lazarus, FPC: Windows 10 / Ubuntu 20.04 LTS (L 2.0.12 FPC 3.2.0)
CPU-Target: 64Bit

Projekteinstellungen - Pfade - plattformübergreifend

Beitrag von Michel »

Hallo,

ich bin neu in Lazarus und habe hier möglicherweise eine DAU-Frage zu den Projekteinstellungen betreffende die Pfade. Aber ich habe hierzu irgendwie nichts gefunden.

Beim Austesten (Kompilieren) eines Beispielprojekts (auf Ubuntu 20.04 mit Lazarus 2.0.12) habe ich eine Fehlermeldung erhalten, dass eine bestimmte Datei nicht erstellt werden kann. Nun, auf den ersten Blick schnell entdeckt, ein "\" mitten im Pfad, der auf einem Ubuntu nicht viel Sinn macht. Die Ursache war dann auch schnell gefunden, unter "Einstellung für Projekt|Compilereinstellungen" ist unter Unit-Ausgabeverzeichnis "lib\$(TargetCPU)-$(TargetOS)" eingetragen. Das kann man ändern, aber vor einem Kompilieren auf Windows muss man das dann erneut ändern. Ist das so Absicht, oder gibt es ähnlich wie im Code mit PathDelim hier eine Variable, die man hier anstelle des "\" bzw. "/" einsetzen kann und so sichergestellt ist, dass ich auf beiden Plattformen ohne Änderung an den (Standard-)Projekteinstellungen die jeweilige ausführbare Datei erstellen kann?

Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 990
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Linux Mint 20 , FPC 3.3.1 , Lazarus 2.1.0 -Win10 & XE7Pro
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

Re: Projekteinstellungen - Pfade - plattformübergreifend

Beitrag von kralle »

Moin und herzlich Willkommen.

Schaue Dir mal in der angehängten PDF, den Abschnitt zum Thema "Erstell-Modi" an.
Ist nicht mehr ganz aktuell, aber sollte Dir einiges erklären.

Gruß HEiko
Dateianhänge
Lazarus XCompiling 1_9._0.pdf
(838.24 KiB) 39-mal heruntergeladen
OS: Manjaro Linux, Debian und Windows 10
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1

Michel
Beiträge: 35
Registriert: Sa 4. Dez 2021, 11:43
OS, Lazarus, FPC: Windows 10 / Ubuntu 20.04 LTS (L 2.0.12 FPC 3.2.0)
CPU-Target: 64Bit

Re: Projekteinstellungen - Pfade - plattformübergreifend

Beitrag von Michel »

Ah, danke für die Anleitung. Jetzt komme ich langsam in die gewünschte Richtung.

Wenn ich das richtig verstehe, wird hier vorausgesetzt, dass das x-compling auf ein- und demselben Quellsystem stattfindet. Dann müssen in der Projektdatei neben dem jeweiligen Zielsystem auch die Pfade natürlich weiterhin in der Konvention des jeweiligen Quellsystems gesetzt werden. Die Beispielprojekte sind demnach vor dem Kompilieren jeweils bei Bedarf anzupassen.

Ich habe mir auf einem Windows 10 gleichfalls Lazarus 2.0.12 installiert, eigentlich mit dem Ziel, hier ohne jedwede Veränderung der Einstellungen einfach nur neu kompilieren und bei Bedarf auch debuggen zu können.

Hintergrund für mein Ansatz ist eine möglichst einfache Fehlersuche bei Problemen, die mit möglicherweise auf die jeweiligen Plattform basieren, so z.B. der Aufruf einer Windows-API bzw. das (ggfs. selbst erstellte) Pendant auf einem Linux-System. Oder die Nutzung einer Funktion aus einer externen Lib (.so bzw. .dll), usw.

Demnach müsste ich für diesen Fall in der Projektdatei nicht nur je Zielsystem die Einstell-Modi speichern, sondern zumindest je Quell- (und zeitgleich Ziel-)system. Na, das muss ich mir noch mal anschauen.

Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 990
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Linux Mint 20 , FPC 3.3.1 , Lazarus 2.1.0 -Win10 & XE7Pro
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

Re: Projekteinstellungen - Pfade - plattformübergreifend

Beitrag von kralle »

Moin,

um im Quellcode systemunabhängig zu sein, gibt es Konstanten für den Pfadtrenner usw.
Ich selber habe damit aber noch nicht gearbeitet.

Laut "Lazarus - Arbeiten mit der IDE und Klassenbibliothek" Seite 301 und folgende gibt es die Konstanten:
- PathDelim
- DriveSeparator
- AllFilesMask
- LineEnding

und noch ein paar mehr um plattformunabhängig zu arbeiten.

Gruß Heiko
OS: Manjaro Linux, Debian und Windows 10
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1

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

Re: Projekteinstellungen - Pfade - plattformübergreifend

Beitrag von wp_xyz »

Normalerweise werden die Pfadtrenner beim Öffnen eines Projektes angepasst - ich weiß aber nicht, ob das auch beim Cross-Compilieren und dem Ändern des Build-Mode passiert. Man ist auf der sicheren Seite, wenn man in der Konfiguration generell '/'-Pfadtrenner verwendet - Lazarus kommt damit unter Windows klar (aber unter Linux nicht mit dem '\').

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

Re: Projekteinstellungen - Pfade - plattformübergreifend

Beitrag von Warf »

Also nach meiner Erfahrung ist bisher eigentlich immer so gewesen das Lazarus das automatisch angepasst hat

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Projekteinstellungen - Pfade - plattformübergreifend

Beitrag von Winni »

Warf hat geschrieben:
Sa 4. Dez 2021, 14:40
Also nach meiner Erfahrung ist bisher eigentlich immer so gewesen das Lazarus das automatisch angepasst hat
d'accord

Winni

Antworten