2017-11-21 5 views
0

Ich versuche, die letzte Version von Clang (6.0) zu konfigurieren, um den Arm-None-Eabi-Linker anstelle der Id.lld verwenden, aber Clang ignoriert immer alles und Fragen Sie nach dem ld.lld. Ich versuche für Cortex-m3 (lpx1769 Board) zu bauen. Wie erzwinge ich Clang, den Linker zu verwenden, den ich möchte.So konfigurieren Sie Clang, um arm-none-eabi-Linker zu verwenden

-fuse-ld = ld funktioniert auch nicht, also erlaubt clang nicht mehr die Verwendung eines anderen Linkers?

+0

Ihre eigenen Make-Datei machen und rufen Sie die Werkzeuge einzeln klirren, entscheiden, llc, ld. llc kann jetzt ein Objekt (direkt?) erstellen, sodass du es nicht mehr anrufen musst. –

+0

Vielen Dank für Ihre Antwort. Ich konfiguriere und baue eine Benchmark-Suite und möchte jede Hacky-Lösung vermeiden. Ich habe schließlich gefunden, wie man es mit dem Flag: -fuse-ld = Pfad/zu/Linker-to-be- – Kyriakos

+0

tut mir leid, dass Sie denken, Makefiles und verfügbaren Tools verwenden ist Hacky. Was Sie im Laufe der Zeit mit llvm/clang finden werden ist, dass diese Befehlszeilenoptionen kommen und gehen. Sobald Sie einen obskuren finden, ändern sie ihn ... also denke ich, dass das zu Ihrer Definition von Hacky geht ... –

Antwort

0

So war die Antwort, die Fahne zu verwenden:

-fuse-ld = path/to/Linker-to-verwendet werden

Denken Sie daran, dass, wenn Sie dieses Flag Gabe an klirren wird ein verursachen warnt, dass clang dieses Flag nicht verwenden wird (nur die Linker-Stufe wird es tun). Wenn Sie also mit -Werror kompilieren, wird die Warnung zu einem Fehler.

Da Cross-Compiling wahrscheinlich ist, müssen Sie den Linker wissen lassen, wo die zielspezifischen Bibliotheken mit der Option -L zu finden sind. Sehen Sie diese für weitere Informationen:

https://clang.llvm.org/docs/CrossCompilation.html

Verwandte Themen