/ / Link-Fehler beim Kompilieren von llvm mit einem neuen Optimierungspass - llvm, llvm-ir

Link-Fehler beim Kompilieren von llvm mit einem neuen Optimierungspass - llvm, llvm-ir

Ich habe einen neuen LLVM-Optimierungspass geschrieben. Ich habe diesen Pass hinzugefügt, indem ich ein neues Verzeichnis an folgendem Ort erstellt habe: llvm / lib / Transform / AddSub

Ich folge den in der llvm-Dokumentation genannten Schritten: http://llvm.org/docs/WritingAnLLVMPass.html

Beim Kompilieren bekomme ich aber Verbindungsfehler. Möglicherweise sind meine Build- und Makefile-Einstellungen nicht korrekt.

Relocation R_X86_64_PC32 gegen undefiniertes Symbol `_ZTVN12_GLOBAL__N_18AddSubE" kann nicht verwendet werden, wenn ein Shared Object erstellt wird; Rekompilieren mit -fPIC

Wenn ich einen unabhängigen llvm-Pass geschrieben und in ein neues Verzeichnis in llvm eingefügt habe: llvm / lib / transform /

Welche Makefile oder Build-Änderungen muss ich beim Schreiben eines unabhängigen Passes vornehmen?

Antworten:

0 für die Antwort № 1

Ich bin auf den gleichen Fehler gestoßen, als ich versuchte, die Anleitung zum Schreiben eines LLVM-Passes zu befolgen. Für mich war das Update eine Zeile wie diese:

char MyPassName :: ID = 0;

(Ich hatte diesen Schritt in den Richtungen übersprungen.)