Bash 命令:导出 BLAS_LIBS="-L$LAPACKHOME/lib -lblas"

Bash command: export BLAS_LIBS="-L$LAPACKHOME/lib -lblas"

谁能给我解释一下整个句子的意思吗?

我知道这是将宏 BLAS_LIBS 设置为另一个字符串。

但我不确定“-lblas”是什么意思,也不知道如何使用它。 类似于下面的代码。 “-llapack”

export LAPACK_LIBS="-L$LAPACKHOME/lib -llapack"

程序如何仅通过“-lblas”和“-llapack”找出 BLAS 和 LAPACK 库?

感谢提前。

我不确定你为什么说 "just by -llapack" 因为这不是这里发生的事情。具体来说,-L 选项就在它指定要添加到库解析路径的目录路径之前。这大致类似于 shell.

中的 PATH

例如,使用命令行片段 gcc -Lfoodir -Lbardir -lfoo -lbar,您基本上指示链接器在目录 foodirbardir 中搜索库文件 libfoo.alibbar.a.

-l 选项在 GCC: Options for Linking and -L and friends in the following section GCC: Options for Directory Search 中有描述。

这种构建安排——配置构建以在编译之前显示所需文件的位置——对于库来说很常见,如果用户已经为其他项目下载并编译了所需的库,他们就不会需要重建它;他们可以将编译器指向他们已经拥有该项目所需内容的任何地方。

无论如何,构建您自己的库变得越来越没有必要,因为如今大多数系统都可以使用大多数常用库的预打包二进制文件。但是,当然,如果您在一个不寻常的平台上,或者有特殊的需求要求使用与任何可用的预构建二进制文件不同的选项进行重新编译,您仍然需要了解如何执行此操作。