Wie man llvm und clang auf cygwin baut

7

Kann ich LLVM erstellen und aus dem Quellcode auf cygwin klingeln?

Wie lange sollen LLVM und Clang gebaut werden? Weil ich versuche, sie auf VirtualBox zu erstellen, dauert es ungefähr 2 Stunden.

    
Han Bing 08.11.2012, 20:29
quelle

3 Antworten

15

Nachdem ich einige Anstrengungen unternommen habe, könnte es sich lohnen, einige meiner Erkenntnisse zu teilen. Ich habe es geschafft, Clang + LLVM 3.4 auf Cygwin 1.7.28 (x86) zu erstellen.

Cygwin-spezifisch

Die Integer-Typen der Maschine reparieren

Ein aktuelles Update für Cygwin scheint einen der System-Header von Clang beschädigt zu haben. Ein unvollständiger Patch wurde auf der Cygwin-Mailingliste bereitgestellt. Hier ist der vollständige Patch .

Enthält Verzeichnisse für die C ++ - Standardbibliothek

Clang ++ (ab 3.4) kodiert immer noch die include-Verzeichnisse für die C ++ - Standardbibliothek (sie beruht auf den von GCC bereitgestellten). Wenn die Pfade nicht korrekt sind (wie es bei Cygwin häufig der Fall ist), treten Probleme auf, wenn Sie einen C ++ - Header (z. B. <iostream> ) einfügen. Zwei mögliche Wege, dies zu beheben:

  • Sie können die korrekten Pfade zum Code hinzufügen . Dies ist ziemlich unflexibel, da Sie Clang ++ jedes Mal neu kompilieren müssen, wenn sich dies ändert, was bei Cygwin sehr lange dauert. Wenn Sie dies tun möchten, finden Sie den Code unter clang/lib/Frontend/InitHeaderSearch.cpp in Zeile 389.

  • Alternativ dazu können Sie eine symbolische Verknüpfung erstellen, in der Clang sie erwartet .

    1. Identifizieren Sie die von Clang ++ durchsuchten Verzeichnisse, indem Sie Folgendes ausführen:

      %Vor%

      Sie sollten etwas in der Art von

      finden %Vor%

      Es wird wahrscheinlich mehrere verschiedene Versionsnummern geben X.Y.Z . Wählen Sie einen von ihnen aus und erstellen Sie dann einen symbolischen Link zum richtigen Speicherort:

      %Vor%

      Dabei steht A.B.C für die Version von GCC, die derzeit installiert ist.

Farbige Diagnose

Wenn Sie von Clang farbige Fehlermeldungen erhalten möchten, installieren Sie das ncurses-Entwicklungspaket ( libncurses-devel ) zuvor mit Cygwin Setup. Ohne es wird Clang auf seinen farblosen Modus zurückfallen, weil LLVM nicht in der Lage sein würde festzustellen, ob das Terminal Farben unterstützt.

Sie können immer noch erzwingen, dass Farben mit -fcolor-diagnostics angezeigt werden, aber der Linker von GCC wird bei diesem Flag ersticken, was die Verwendung sehr ungünstig macht.

Systemunabhängig

Dies ist der einfachste (und längste) Teil, und größtenteils gilt alles in der Dokumentation von LLVM + Clang.

  1. Laden Sie die Quelle herunter . Selbst wenn Sie nur Clang benötigen, benötigen Sie immer noch den LLVM-Quellcode.

  2. Nachdem Sie sowohl Clang als auch LLVM extrahiert haben, verschieben Sie das Clang-Verzeichnis in das Unterverzeichnis tools von LLVM.

    %Vor%
  3. Beginnen Sie mit der Konfiguration:

    %Vor%

    Clang wählt sich lieber selbst als Compiler aus. Wenn Sie also noch keine funktionierende Clang-Installation haben, verwenden Sie die Umgebungsvariablen CC und CXX , um stattdessen die Verwendung von GCC zu erzwingen.

  4. Wenn alles in Ordnung ist, können Sie anfangen, & amp; Installation, die sowohl clang als auch llvm aufbauen wird:

    %Vor%
Rufflewind 17.02.2014 04:17
quelle
10

Clang ( x86 , < a href="https://cygwin.com/cgi-bin2/package-cat.cgi?file=x86_64%2Fclang%2Fclang-3.4.2-5"> x86_64 ) und LLVM ( x86 , x86_64 ) sind derzeit als Cygwin-Pakete verfügbar.

Die Installation des Cygwin-Pakets würde Ihre Probleme erheblich verringern

    
Shenal Silva 12.01.2013 08:54
quelle
3

Willst du llvm / clang entwickeln oder mit llvm / clang entwickeln? Für den letzteren Fall, warum llvm-3.1 / Clam-Binärdateien nicht vom Cygwin-Repository installieren? Sie funktionieren ziemlich gut auf meinem Windows 7.

    
jichi 21.11.2012 17:38
quelle

Tags und Links