簡體   English   中英

與BLAS OS X鏈接

[英]Linking with BLAS OS X

我目前正在嘗試使用我不太熟悉的庫來編譯程序。 運行編譯器時,出現以下輸出/錯誤:

Undefined symbols for architecture x86_64:
  "_cblas_ddot", referenced from:
      shark::LDA::train(shark::LinearClassifier<shark::blas::vector<double> >&, shark::LabeledData<shark::blas::vector<double>, unsigned int> const&) in libshark.a(LDA.cpp.o)
      shark::LDA::train(shark::LinearClassifier<shark::blas::vector<double> >&, shark::WeightedLabeledData<shark::blas::vector<double>, unsigned int> const&) in libshark.a(LDA.cpp.o)

我當前的想法是,這是因為缺少了我剛剛下載並編譯過的BLAS庫(來自fortran代碼?)。

用於編譯的命令行參數看起來像這樣

g++ -o example -I/to/boost/include -I/to/shark/include -L/to/boost/lib -L/to/shark/lib -L/to/BLAS -lshark -lblas -l(boost_flags)

/to/BLAS有一個libblas.a ,我運行了nm libblas.a ,它給出了一行

libblas.a(ddot.o):
00000000000001c0 s EH_frame1
0000000000000000 T _ddot_

對此並不太安全,我認為這意味着該庫確實具有符號,但沒有_cblas_前綴。

從這一點上我該怎么辦? 我可以更改符號名稱嗎? 還是我需要將此庫與其他鏈接?

我使用OS X Mavericks

提前致謝 : )

根據Logicrat的建議,解決方案是我需要其他文件,我從這里下載了源代碼,並使用cmake / make進行了無縫連接。 與由此產生的庫鏈接解決了該問題。

OS X附帶了已安裝的BLAS(包括cblas)(它是Accelerate.framework的一部分)。 無需下載和構建自己的。 只需與-lcblas鏈接-lcblas

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM