Wie verlinke ich eine Bibliothek mit clang und llvm-link
Bin ich kompilieren meine Programme wie dieses,
clang++ -O4 -emit-llvm file1.cpp -c -o file1.bc -pthread
clang++ -O4 -emit-llvm file2.cpp -c -o file2.bc -pthread
llvm-link file1.bc file2.bc -o main.ll -S
Wie kann ich festlegen Verknüpfung mit -ldl
- Haben Sie versucht, die
clang++ -o main.ll file1.bc file2.vs -ldl
? - Nein das funktioniert nicht, es sagt unknown command line
- Datei2.vs ist ein Tippfehler auf meiner Seite, aber ich denke, man fixiert es. Sollten Sie post die ganzen Fehler melden, weil das Geräusch ist in der Lage, sich zu verbinden.
- Es sagt dies: llvm-link: Unknown command line argument '-ldl'. Versuchen Sie: 'llvm-link -help' llvm-link: meinst du '-d'?
- Könnten Sie genau das zeigen, was Sie getippt haben? @Ismail'cartman'Dönmez 's Vorschlag sollte funktionieren.
Du musst angemeldet sein, um einen Kommentar abzugeben.
llvm-link
ist ein Programm, welches "links" zusammen LLVM-IR-Dateien in einer einzigen IR-Datei; Sie können mehr darüber Lesen Sie hier. Es hat keine Beziehung zuld
oder Verknüpfung von Objekt-Dateien zusammen.Wenn Sie wollen, zu generieren Objekt-code und/oder die ausführbaren Dateien finden Sie diese damit zusammenhängenden Fragen:
Kurz gesagt, Sie sollten mit nativen tools für den Aufbau und die Verknüpfung (
as
undld
zum Beispiel), obwohl es derzeit einige experimentelle Unterstützung für die Erzeugung von Objekt-Dateien und für die Verknüpfung in LLVM.In jedem Fall, Klammerten sich aufrufen können und eine Plattform linker - das ist eigentlich der Standard, aber du hast natürlich außer Kraft gesetzt, indem
-c
.