2016-11-19 129 views
0

我想爲我的項目嘗試不同的C線性代數庫,現在我想學習BLAS(CBLAS)。我正在嘗試遵循教程here。我意識到,cblas已經內置在Xcode,並通過添加標誌CBLAS mac OS X架構x86_64錯誤的未定義符號

gcc foo.c -framework Accelerate 

gcc foo.c -lcblas 

我可以去除大部分我之前所具有的錯誤。然而,在因特網上的任何地方都找不到最終的錯誤。

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) 

我不知道在那裏我做了錯誤,但也有一些可能性:

  1. 我需要從netlib website安設BLAS/CBLAS。我實際上試圖做到這一點,但我可以設法從源代碼構建庫!如果有人能製作自制香腸配方,那將是非常棒的。那麼如果安裝了原始CBLAS庫,那麼我需要了解用於編譯的gcc標誌以及如何鏈接這些庫。
  2. 或者在netlib的原始CBLAS和xcode中內置的CBLAS之間有語法差異,我需要更改代碼。

感謝您的幫助提前。

P.S.我試圖從我提到的頁面編譯代碼blas1C.c,blaio.c,blaio.h。

編輯1:哦我的!我只是意識到我犯了一個可怕的錯誤。缺少printVector功能不是CBLAS的一部分,而是博客作者所做的功能。我唯一需要做的就是編譯blaio.c文件。所以正確的gcc命令應該是

gcc blas1C.c blaio.c -lcblas 

gcc blac1C.c blaio.c -framework Accelerate 

回答

0

該函數來自blasio.c在網站和blasio.h 宣佈你需要建立blasio並鏈接到它

+0

是的,這是正確。我已經認識到了我可怕的錯誤。無論如何感謝您的回覆。 – Foad

相關問題