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)
我不知道在那裏我做了錯誤,但也有一些可能性:
- 我需要從netlib website安設BLAS/CBLAS。我實際上試圖做到這一點,但我可以設法從源代碼構建庫!如果有人能製作自制香腸配方,那將是非常棒的。那麼如果安裝了原始CBLAS庫,那麼我需要了解用於編譯的gcc標誌以及如何鏈接這些庫。
- 或者在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
是的,這是正確。我已經認識到了我可怕的錯誤。無論如何感謝您的回覆。 – Foad