Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1074052
  • 博文数量: 264
  • 博客积分: 7225
  • 博客等级: 少将
  • 技术积分: 5096
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-17 08:53
文章分类

全部博文(264)

文章存档

2011年(33)

2010年(52)

2009年(152)

2008年(27)

我的朋友

分类:

2009-06-17 08:51:39

 

1. 从 netlab 下载最新版本的源代码

2. 将源代码解压缩

tar -zxf lapack-3.1.0.tgz

3. 编辑 make.inc 文件,进行一些系统相关的编译参数设置

PLAT : 设置生成的库函数的后缀,比如 SUN, LINUX之类的,当然也可以不设置;

FORTRAN : 设置编译器,比如 g77, gfortran, ifort, g95 等等;

OPT:设置编译选项,根据具体的编译器和优化要求进行设置;

LOADER : 设置成和FORTRAN 一样就可以了;

4. 编辑 Makefile

找到 lib: 选项。然后设置需要编译的库函数如下

#lib: lapacklib tmglib

lib: blaslib lapacklib tmglib

默认的情况是不编译 blas 库的。

5. 编译和测试 Lapack.

在源代码的根目录下输入 make 回车。然后 make 程序就会自动进行编译和测试。

6. Lapack 函数的使用

如果编译和测试顺利的话会在源代码的根目录下生成三个文件 lapack.a、blas.a、tmglib.a。lapack.a 和 blas.a 就是我们所需要的库函数。它们的使用有两种途径:

a) cp lapack.a liblapack.a , cp blas.a libblas.a 并拷贝到 LD_LIBRARY_PATH 目录下,或者它们所在的目录加入到 LD_LIBRARY_PATH 环境变量中,或者在编译时候加上 “-L lapack所在目录/” 选项。编译的时候加上编译选项 -llapack -lblas。

b) 编译的时候直接把 lapack.a 和 blas.a 一起同需要编译的代码一起编译。比如 要编译的文件为 main.f90 编译器为 gfortran 。 gfortran main.f90 lapack.a blas.a。

当然也可以将 Lapack 做成动态链接库文件的形式来使用。当然,在 linux 系统下也可以直接安装编译好的文件比如 redhat 、suse 安装 rpm 格式的文件,在 ubuntu 和 debian 系统下,安装 deb 格式的文件。但是最好还是根据自己的环境自己编译库函数,这样速度会快一些。我曾在 ubuntu 下做过实验一般情况下速度关系为,自己编译的库函数 > 编译好的库函数 > 调用 matlab 函数。

(责任编辑:云子)

阅读(1087) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~