2010-10-13 12 views
13

Welchen Linker benutze ich für den Klang? Wenn ich clang oder ld als Linker verwende, erhalte ich große Mengen an Fehlern, als ob ich nicht mit der Standardbibliothek verbunden wäre.Linker für Clang?

g ++ $ (OBJS) -o $ (BINDIR)/obtap

Es scheint, ich g ++ verwenden, um meine haben Klirren Objekte zu verknüpfen.

Antwort

21

Ich habe 'clang' anstelle von 'clang ++' ausgeführt, was bedeutet, dass die C++ - Standardbibliothek nicht verlinkt wurde.

3

Sie müssen den Link-Editor von llvm nicht verwenden. Ich werde es vermeiden, mich mit den technischen Details zu befassen, aber kurz gesagt, Sie benötigen zu diesem Zeitpunkt einen typischen UNIX-Link-Editor, um Clang zu benutzen (lesen Sie: GNU ld oder Sun ld). Sogar llvm-ld verwendet den Linker der zugrunde liegenden Plattform, um native Binärdateien zu verknüpfen.

3

Follow-up: es ist jetzt 2016, und llvm hat einige stetige Fortschritte auf ihrem eigenen Linker gemacht. Es heißt "lld", und the website is here. Es funktioniert einwandfrei, um i386 und x86_64 Binaries zu erstellen, während die Arbeit an anderen Systemen läuft.

Dies sollte die Abhängigkeit von GNU-Tools für BSDs entfernen, sobald es als stabil genug angesehen wird.

Verwandte Themen