2011-10-24 52 views
3

そのようなファイルまたはディレクトリ、<cblas.h>が存在しないのはなぜですか?私はCで、いくつかの行列の乗算をやっていると私はそれが理由でコンパイルに失敗したが、私のprogamをコンパイルしようとしています

そのようなファイルやディレクトリcblas.h

これは、コマンド私はコンパイルに使用しています:

gcc -o BLAS BLAS.c 

誰でも助けてくれますか?私はこのプログラムをサーバー上でコンパイルしています。これが違いを生むかどうかは分かりません。

答えて

5

-I directoryオプションを追加する必要があります。directoryは、cblas.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

あなたが使用しているライブラリのヘッダファイルへのパスを追加する必要があります。私はRedHat7を使用してい

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

ヘッダーがどこに格納されているのかわかっているのかわかりません。私はこのgcc -o -I/usr/lib/libblas/BLAS BLAS.cのようにコンパイルしようとしましたが、これまでの回答に感謝しています。 – Hugs

-1

-Iオプションでそれを試してみてください。

後、私はヘッダファイル(cblas.h、f77blas.h、lapacke_config.h、lapacke.h、lapacke_mangling.h、lapacke_utils.h、openblas_config.hが)であることが判明sudo yum install openblas-devel

によってopenblasをインストール/usr/include/openblas/

これらのファイルへのソフトリンクを/usr/include/に作成すると、問題は解決します。

+0

これは非常に間違った「解決策」です。サブディレクトリは設計によるものです。ライブラリはヘッダーを '/ usr/include'の別々のサブディレクトリに置くことになっています。ですから、あなたは '#include 'か、プリプロセッサに '-I'フラグなどを渡して'/usr/include/openblas'で検索するよう指示します。 'include 'のルートでシンボリックリンクを開始しません。 –

関連する問題

 関連する問題