Ich habe ein wenig nach der Lazarus-IDE-Dokumentation gesucht und bis jetzt nur Informationen gefunden, die sich auf Cross-Compiling beziehen, also hoffte ich, dass mir jemand eine klare Antwort geben könnte. Ich arbeite gerade an einem Projekt, das Kompilierung für 32-Bit-Windows sowie 64-Bit-Windows erfordert. Außerdem habe ich bereits beide Versionen des Free Pascal Compilers eingerichtet. Verfügt Lazarus über eingebaute Funktionen zum Konfigurieren in beiden Compilern und dann basierend auf dem Build-Ziel mithilfe des entsprechenden Compilers? Im Idealfall würde dies auf globaler Ebene erfolgen, so dass die Konfiguration projektübergreifend beibehalten wird. Wenn dies jedoch nur auf Projektebene möglich ist, macht es mir nichts aus, dies auf diese Weise zu tun.Globale Verwaltung mehrerer Compiler in Lazarus IDE
Antwort
Bei weiterem Lesen, denke ich, habe ich meine Antwort gefunden. Ich habe es nicht bemerkt, aber fpc hat die gleiche Art von Front-End-Funktionalität wie gcc. Die Implementierung der in meiner Frage beschriebenen Funktionalität ist lediglich eine Frage der Installation des Compilers als Cross-Compiler und nicht als unabhängiger Compiler. Da es nicht so aussieht, als könnten Sie den x86_64-Compiler verwenden, um eine 32-Bit-Version zu erstellen, müssen Sie die 32-Bit-Version kompilieren und dann die 64-Bit-Version kompilieren. In meinem Fall habe ich kompiliert und installiert zuerst die Win32-Compiler:
make all install INSTALL_PREFIX=C:\path\to\lazarus\1.0.8\fpc\2.6.3 OS_TARGET=win32 CPU_TARGET=i686 PP=ppc386.exe
Als nächstes ich zusammengestellt und crossinstalled die 64-Bit-Compiler:
make crossall crossinstall INSTALL_PREFIX=C:\path\to\lazarus\1.0.8\fpc\2.6.3 OS_TARGET=win64 CPU_TARGET=x86_64
, dass es zu bestätigen funktioniert, finden Sie eine ausführbare Datei namens ppcrossx64
in Ihrem Ordner C:\path\to\lazarus\1.0.8\fpc\2.6.3\bin\i386-win32
.
xxx -> i386 ist derzeit nicht möglich, weil der i386-Compiler erweiterte (10-Byte-Reals) verwendet, während andere Ziele dies nicht unterstützen. (vielleicht hilft x86_64 inzwischen, anfänglich hat es x87 nicht unterstützt). Dies sollte durch Softfloat behoben werden, aber daran wird nicht wirklich gearbeitet. –
Ah, das macht dann Sinn. Freut mich zu wissen, dass es einfach nicht unterstützt wird und dass ich einige Dokumente nicht übersehen habe. Danke für die Information. –