6 Stimmen

Ein funktionierendes D2.x-Toolchain (mit GTKD) unter Ubuntu 10.04 einrichten

Ich habe ein paar Tage lang mit D herumgespielt und war ziemlich aufgeregt, bis ich versucht habe, gtkd zum Laufen zu bringen. Ich habe jetzt den Großteil von 3 Tagen damit verschwendet, eine funktionierende Einrichtung zu bekommen und fange langsam an, (bzw. habe schon vor langer Zeit) ein wenig demoralisiert zu werden. Ich frage mich, ob mir jemand helfen kann, bevor ich aufgebe. Ein Großteil der Informationen, die ich online finden kann, ist veraltet, daher bin ich mir nicht einmal sicher, ob ich überhaupt richtig liege, wenn ich denke, dass dies überhaupt möglich ist.

Der Rest dieses Textes handelt nur davon, was ich bisher versucht habe, und Sie müssen ihn möglicherweise nicht lesen, wenn Sie eine schnelle Lösung haben. Springen Sie also frei zu ... [Hierhin springen]

Also, zuerst muss ich wissen, ob tango tatsächlich für die Verwendung mit D2.0 verfügbar ist. Ich glaube, dass es ursprünglich nicht verfügbar war, aber jetzt ist D2.x so, dass Sie tango und phobos nebeneinander verwenden können. Wenn dies nicht stimmt, bin ich wahrscheinlich am ersten Hindernis gescheitert und dies ist von vornherein ein Fehlschlag.

Die Schritte, die ich bisher unternommen habe:

  1. Ich habe gdc aus den Ubuntu-Repositories installiert.
  2. Ich habe die libtango-headers aus den Repos installiert (Anmerkung: Nur Header, keine Bibliotheken verfügbar, also das ist nicht besonders hilfreich).
  3. Ich habe dsss manuell installiert.

Diese Einrichtung würde D kompilieren, aber als ich versuchte, gtkd zu installieren (mit dsss), kompilierte es, aber ich bekam allerhand Fehlermeldungen (die sich auf tango bezogen), als ich versuchte, irgendetwas damit zu kompilieren. Nun, wie ich bereits erwähnt habe, hatte ich keine Bibliotheken, also hätte dies nicht überraschend sein sollen. Ich versuchte, die tango-Bibliotheken manuell zu installieren, erhielt aber trotzdem viele Fehlermeldungen und musste schließlich zu einem dsss net install tango greifen, was mich davor warnte, dass ich nicht zu phobos zurückkehren könnte (was mich verwirrte, da ich dachte, dass die beiden nebenher genutzt werden könnten). Wie auch immer, ich fuhr fort und meine Einrichtung war komplett durcheinander. Ich konnte jetzt kein D mehr kompilieren.

Entschuldigung, dass ich in diesem letzten Abschnitt nicht genauer darauf eingehen konnte, welche Fehlermeldungen ich erhalten habe, ich erinnere mich ehrlich gesagt nicht daran.

Wie auch immer, ich habe alles entfernt, was ich installiert hatte, und habe von vorne angefangen.

  1. Ich habe gdc aus den Repos installiert.
  2. Ich habe dsss manuell installiert.

Ich habe jetzt gelesen, dass das neueste tango nicht mit gdc funktioniert (bin mir nicht sicher, ob das stimmt), also habe ich

  1. Das Deb für dmd heruntergeladen und installiert.
  2. Die neueste tango (Bibliotheken und Header) manuell installiert.
  3. Gtkd mit dsss installiert.

Jetzt kann dsss dmd nicht erkennen, also kann ich nur gdc damit verwenden. Das findet jedoch nicht tango. Wenn ich dmd direkt benutze, findet es tango und gtkd, aber ich erhalte Fehlermeldungen über volatile-Anweisungen, die veraltet sind. Etwas, was anscheinend in D2.x wahr ist, was mich wieder zu der Frage führt, ob tango überhaupt unterstützt wird.

Mensch, ich bin verwirrt!

[Hierhin springen]

Wenn mir jemand schrittweise Anweisungen geben kann, wie ich eine funktionierende Einrichtung aufsetze, wäre ich Ihnen sehr dankbar!

Danke, T.

Aktualisierung: "Wir sind da!"

Also habe ich dmd.2.049.zip von http://www.digitalmars.com/d/download.html heruntergeladen und in mein Home-Verzeichnis entpackt und habe ein export PATH = $PATH:~/dmd2/linux/bin gemacht (danke an dsimcha).

Ich habe dsss vergessen. Ich habe die svn-Version von gtkd gemäß den Anweisungen auf http://www.dsource.org/projects/gtkd/wiki/UsingSubversion heruntergeladen. Ich habe die GNUmakefile bearbeitet, um das Präfix auf /home/ich/dmd2/linux zu ändern, und habe ein make install gemacht.

Ich habe die Datei ~/dmd2/linux/bin/dmd.conf bearbeitet, damit die Include-Pfade ../include enthalten (die gtkD-Bibliotheken werden in ../lib platziert, also musste ich die Bibliothekspfade nicht bearbeiten).

Jetzt, um mit gtkD zu kompilieren, musste ich gegen libgtkd und libdl linken. Dies wurde durchgeführt, dmd mydprog.d -L-lgtkd -L-ldl (danke an jpf).

6voto

dsimcha Punkte 65784
  1. Tango funktioniert nicht mit D2. Es gab vor langer Zeit einige Bemühungen, es zu portieren, aber das stieß irgendwann an eine Wand und es ist unklar, ob dies jemals abgeschlossen wird. Andererseits ist Phobos für D2 viel besser als Phobos für D1, also ist der Mangel an Tango nicht so schlimm, wie es klingt.

  2. GDC unterstützt eine alte Version von D2. Es besteht absolut keine Chance, dass gtkD damit kompiliert. Sie sollten den Referenz-DMD-Compiler verwenden.

  3. Im Allgemeinen ist der richtige Weg, DMD auf Linux einzurichten, einfach dmd.2.0xx.zip in Ihr Home-Verzeichnis zu entpacken und ein export PATH = $PATH:~/dmd2/linux/bin durchzuführen, um sicherzustellen, dass die DMD-Ausführbare Datei in Ihrem Pfad liegt. Dann sollte alles funktionieren (mit DMD2 und Phobos).

4voto

jpf Punkte 527

Wenn Sie möchten, dass dmd Argumente an den Linker weitergibt, müssen Sie sie mit -L voranstellen. Ich glaube, für gtkd müssen Sie die gtkd-Bibliothek und libdl verknüpfen.

-L-lgtdk -L-ldl

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X