Frage

Was ist der beste Weg, um Programme mit DMD auf einer 64-Bit-Maschine zu kompilieren? Es muss nicht auf 64-Bit-Code kompilieren. Ich weiß, über GDC, sondern will auch mit D2 arbeiten. Es gibt auch chroot, aber für eine einfachere Art und Weise ist die Hoffnung.

Das eigentliche Problem ist nicht mit dem Kompilieren, sondern verknüpfen. DMD fordert GCC mit Systembibliotheken ausführen zu verknüpfen. Kann ich DMD GCC Link gegen 32-Bit-Bibliothek haben? Oder wie würde ich es tun manuell?

Ich habe bereits die ia32-Bibliotheken installiert, weshalb ich DMD laufen kann.

War es hilfreich?

Lösung

Stellen Sie GCC 32-Bit-Link auszuführen, indem es '-m32' Flagge übergeben.

Es scheint, dass DMD nicht gcc nicht aufrufen, um den Link zu erfüllen, sondern ruft ld direkt. Der äquivalente ld Schalter ist '-melf_i386', und anscheinend die Art und Weise DMD diese Option an den Linker übergeben zu machen ist mit '-L-melf_i386' Flagge.

Beachten Sie, dass viele Systeme trennen Laufzeit- und Entwicklungsbibliotheken. 32-Bit-Laufzeit-Packages ist fast immer standardmäßig installiert, aber 32-Bit-Entwicklungspakete können nicht sein.

Sie müssen Entwicklung 32-Bit-Pakete 32-Bit-Programme zu bauen. Die Tatsache, dass 32-Bit-DMD laufen kann an sich nicht beweisen, dass Sie die alle 32-Bit-Bibliotheken haben Sie benötigen, um 32-Bit-Programme zu bauen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top