2011-10-24 34 views
3

我做一些C矩陣乘法,我試圖編譯我的編程'但是它不能編譯的原因:爲什麼不存在這樣的文件或目錄,<cblas.h>?

沒有這樣的文件或目錄cblas.h

這是命令我正在使用編譯:

gcc -o BLAS BLAS.c 

任何人都可以請幫助我嗎?我正在服務器上編譯這個程序。我不確定這是否有所作爲。

回答

5

您需要添加-I directory選項,其中directorycblas.h文件在您的系統上的位置。

這給:

gcc -o BLAS -I directory_of_cblas_header BLAS.c 
+0

所以我不知道我的標題在我的系統上。從服務器是「〜/ usr/lib/libblas」?感謝您的快速回復。 – Hugs

+1

運行'find/-name cblas.h',它應該指出你係統上的文件'cblas.h'的位置。 – jopasserat

0

你必須的路徑添加到您正在使用的庫的頭文件。嘗試使用-I選項:

gcc -o -I "path/to/you/headers" BLAS BLAS.c 
+0

我不確定標題的存儲位置,或者我甚至擁有它。我已經嘗試編譯這樣的gcc -o -I/usr/lib/libblas/BLAS BLAS.c感謝迄今爲止的答案。 – Hugs

-1

我正在使用RedHat7。

通過sudo yum install openblas-devel

安裝openblas後,我發現,頭文件(cblas.h,f77blas.h,lapacke_config.h,lapacke.h,lapacke_mangling.h,lapacke_utils.h,openblas_config.h)是/usr/include/openblas/

通過在/usr/include/中創建這些文件的軟鏈接,問題就解決了。

+0

這是一個非常錯誤的'解決方案'。該子目錄是設計。庫應該把它們的頭放在'/ usr/include'的不同子目錄中。因此,您要麼'#include ',要麼將您的預處理器傳遞給'-I'標誌或等價物以告訴它也要在'/ usr/include/openblas'中搜索。你不會在'include'的根目錄開始符號鏈接。 –

相關問題