【发布时间】:2015-10-20 03:13:31
【问题描述】:
我使用 Synaptic 安装了 liblapack-dev 及其依赖项,并在我的代码中包含了 <lapack.h>。
如果我尝试像这样编译我的程序...
mpicc program.c -llapack -o output
...我收到以下错误:
program.c:4:20: fatal error: lapack.h: No such file or directory
compilation terminated.
我该如何解决这个问题?我已经花了几个小时在谷歌上搜索解决方案,但没有任何帮助。
我正在使用 Linux Mint,但我在最新版本的 Ubuntu 上尝试了相同的操作,但仍然无法正常工作。当我尝试从我的程序中“消除”MPI 并使用 gcc 编译时,同样的事情。
【问题讨论】:
-
locatelapack.h头,可能需要设置编译器的包含路径。 -
@Daniel Fischer:我如何准确定位 lapack.h 标头?如果我在终端中输入“locate lapack.h”,我什么也得不到。如果我输入“locate liblapack-dev”,我会得到一些结果。以及如何设置编译器的包含路径?我的意思是,我已经尝试过做类似的事情(或者至少我认为我做过),但没有成功。
-
大多数编译器都有一个
-i或类似的命令行选项,允许指定包含路径。有关特定编译器的命令选项,请查阅帮助文档、适当的手册页或 google。 -
如果
locate lapack.h没有找到它,你可能根本没有它,或者locate使用的数据库在安装lapack 后没有更新。在后一种情况下,运行updatedb(可能需要sudo)将允许它是located。你也可以使用find(或者如果 Mint 有 GUI 界面)来搜索它。可能它会在/usr/include、/user/lib、/usr/lib64或/usr/local之一之下。重新包含路径,StarPilot 说的,但我不知道 mpicc。 -
@Daniel Fischer:我尝试更新数据库,现在只得到“/usr/include/atlas/clapack.h”。