2016-11-19 1 views
0

Ich versuche verschiedene C lineare Algebra-Bibliotheken für meine Projekte und jetzt möchte ich BLAS (CBLAS) lernen. Ich versuche dem Tutorial here zu folgen. Ich erkannte, dass cblas bereits im Xcode gebaut und durch Hinzufügen der FlaggeCBLAS mac OS X undefinierte Symbole für Architektur x86_64 Fehler

gcc foo.c -framework Accelerate 

oder

gcc foo.c -lcblas 

ich die meisten Fehler entfernen kann ich vorher hatte. Allerdings gibt es einen letzten Fehler, den ich nirgendwo im Internet finden kann.

Undefined symbols for architecture x86_64: 
    "_printVector", referenced from: 
     _main in blas1C-63e43d.o 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

bin ich nicht sicher, wo ich den Fehler mache, aber es gibt eine Reihe von Möglichkeiten:

  1. Ich brauche BLAS/cblas vom netlib website instal. Ich habe es tatsächlich versucht, aber ich konnte die Bibliothek aus dem Quellcode erstellen! es wäre toll, wenn jemand eine Homebrew-Formel machen könnte. Wenn dann die ursprüngliche CBLAS-Bibliothek installiert ist, muss ich etwas über die gcc-Flags zum Kompilieren und zum Verknüpfen der Bibliotheken erfahren.
  2. oder es gibt Syntaxunterschiede zwischen dem ursprünglichen CBLAS von Netlib und dem im xcode eingebauten und ich muss den Code ändern.

danke für Ihre Hilfe im Voraus.

P.S. Ich versuche, die Codes blas1C.c, blaio.c, blaio.h von der Seite, die ich erwähnte, zu kompilieren.

bearbeiten 1: oh mein! Ich habe gerade gemerkt, dass ich einen schrecklichen Fehler gemacht habe. Die fehlende printVector-Funktion ist nicht Teil von CBLAS, sondern eine Funktion, die vom Autor des Blogs erstellt wurde. das einzige, was ich tun musste, war nur die blaio.c-datei zu kompilieren. so die korrekte gcc-Befehl sollte

gcc blas1C.c blaio.c -lcblas 

oder

gcc blac1C.c blaio.c -framework Accelerate 

Antwort

0

sein Diese Funktion kommt von der blasio.c in der Website und erklärt in blasio.h Sie müssen bauen blasio und Link, um es

+0

Ja, das ist richtig. Ich hatte meinen schrecklichen Fehler bereits herausgefunden. Danke für deine Antwort trotzdem. – Foad

Verwandte Themen