Nach dem update auf Mac OS 10.8: "Undefined symbols for architecture x86_64"; "clang: error: linker command failed with exit code 1"

Nach dem Update eine neue Mac (OS 10.8), meine Kollegen und ich sind nicht in der Lage zu kompilieren eines C++ - code, den wir verwendet haben. Wir werden nicht erfahren, mit Codierung und wäre sehr dankbar, wenn jemand könnte uns in die richtige Richtung zu einem newbie-Niveau. Wir sehen, dass es viele Beiträge auf dieser Art von Fehler, aber wenn einer von Ihnen relevant sind, erkennen wir nicht, wie, außer, dass die Beiträge alle scheinen zu sagen, dass dies ist wahrscheinlich ein linker-problem.

Wenn wir "machen" es gibt eine Menge Ausgaben. Der erste Teil ist dieser:

Us$ make g++ -o ourProg 1.o-main.o 2.o -L/Prog/Bibliotheken
-L/Prog/support_libraries -l_codea -l_codeb ... Undefined symbols for architecture x86_64:

Der Letzte Teil ist dieser:

ld: symbol(s) not found for architecture x86_64 clang: error: linker
command failed with exit code 1 (use-v, um zu sehen, Anrufung) machen: ***
[ourProg] Fehler 1

Leider, ein Zustand, der mit dem code ist, dass wir nicht schicken Sie es online, so kann es sein, dass es nicht genug Informationen, dass jemand helfen kann.

Das Ding, das steht für mich ist, dass es aussieht wie Clang verwendet wird für die Verknüpfung, obwohl wir ausdrücklich gesagt, wir wollen g++ verwendet werden, für die Zusammenstellung. In den makefile haben wir gesagt:

CC = g++

  • Hatte dieses problem selbst. Entfernen Sie xCode und neu installieren aus dem app store.
  • Sorry, weil so ein idiot, aber könnten Sie das bitte klären? Wir haben bereits neu installiert XCode von der Apple-Website, und es machte keinen Unterschied. Sagen Sie, dass es einen app store mit einer anderen version?
  • Mac kommt mit seinem eigenen app-store (Sie finden es im launcher), und Sie können installieren xCode von dort. das hat mir geholfen, als ich Probleme.
  • Warum nicht das Kostenlose update auf 10.9? Die hardware-support-Abdeckung ist die gleiche. Auch die Informationen, die hier nur verengt es hinunter zu einer Art linker-Fehler. Es könnte ein fehlender/falsch konfigurierte system-Bibliothek, oder es könnte etwas anderes sein.
  • Ich wusste nicht, dass. Glaubst du, dass dies nicht ein problem in 10.9? Wir sind unter einem ziemlich engen Zeitplan und würde nicht wollen, um ein update auf 10.9 es sei denn, es würde lösen das aktuelle problem-nur für den Fall andere Probleme entstehen würden! Vielen Dank für die Beratung.
  • Zu helfen, müsste ich wissen, was die Symbole wurden nicht definiert, dann die Spur, wo Sie sein sollten definiert -- system-Bibliothek oder-code, was dazu führen würde, warum Sie ausgelassen wurden in der link-Schritt.
  • Upgrade ist viel wahrscheinlicher, um Probleme zu beheben, IMHO. Sowieso die toolchain Verhalten sollte, das gleiche mit dem 10.8 SDK aus einer 10.9 installation. Sie können ausführen, 10.8 oder 10.9 in einer VM, so können Sie auch VirtualBox herunterladen und installieren im hintergrund mit minimalem Aufwand, nur um zu versuchen und zu sehen.
  • (Oh, und übrigens, GNU make zu sein scheint hardwired mit ld Benennung der linker in der default-Regel, nicht $CC; siehe gnu.org/software/make/manual/html_node/Implicit-Variables.html .)

InformationsquelleAutor user3292696 | 2014-02-10
Schreibe einen Kommentar