为什么<cblas.h>这样的文件或目录不存在?

5
我正在使用C语言进行矩阵乘法,尝试编译我的程序,但无法编译,错误原因如下:

没有找到cblas.h文件或文件夹

这是我使用的编译命令:

gcc -o BLAS BLAS.c

请问有人可以帮助我吗?我正在服务器上编译这个程序。我不确定这是否会有影响。

3个回答

8
你需要添加一个-I directory选项,其中directory是你系统中cblas.h文件所在的位置。
这样做会得到:
gcc -o BLAS -I directory_of_cblas_header BLAS.c

所以我不确定我的系统上的头文件在哪里。从服务器上是"~ /usr/lib/libblas"吗?感谢快速回复。 - Hugs
1
运行命令 find / -name cblas.h,它会指出您系统上文件 cblas.h 的位置。 - jopasserat

0

你需要添加一个库的头文件路径。可以使用-I选项来尝试:

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

我不确定头文件存储在哪里,或者我是否拥有它。我尝试像这样编译gcc -o -I /usr/lib/libblas/ BLAS BLAS.c 感谢迄今为止的答案。 - Hugs

-2

我正在使用RedHat7。

安装openblas后,通过sudo yum install openblas-devel命令,我发现头文件(cblas.h、f77blas.h、lapacke_config.h、lapacke.h、lapacke_mangling.h、lapacke_utils.h、openblas_config.h)在/usr/include/openblas/中。

通过在/usr/include/中创建这些文件的软链接,问题得到了解决。


1
这是一个极其错误的“解决方案”。子目录是按设计来的。库应该将它们的头文件放在/usr/include的单独子目录中。因此,您可以使用#include <openblas/whatever.h>或传递预处理器一个-I标志或等效项,以告诉它也在/usr/include/openblas中搜索。您不应该在include的根目录下开始创建符号链接。 - underscore_d

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接