24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1594  |  回复: 29

田山东

捐助贵宾 (著名写手)

[求助] linux下安装arpack遇到阻力,求助:lurencyj请关注下,谢谢

系统:Linux version 2.6.37.1-1.2-desktop (geeko@buildhost) (gcc version 4.5.1 20101208 [gcc-4_5-branch revision 167585] (SUSE Linux) ) #1 SMP PREEMPT
gfortran编辑器,因为我在编辑的时候都是gfortran开头,所以认为是gfortran编辑器。
现在将我的安装过程写下来,请大家帮忙下:
下载arpack96.tar.z,patch.tar.z
解压:tar -zxvf arpack96.tar.z
tar -zxvf patch.tar.z
这两个文件在这个文件夹里:home/tianhongyu/arpack
解压之后产生一个文件夹:ARPACK
ls,找到里面的ARmake.inc,修改里面的参数,
vim ARmake.inc
被修改的参数如下:
home = /home/tianhongyu/arpack/ARPACK
PLAT = LINUX
#下面这条是从网上摘抄的,不知道这么写行不行
BLASdir      = /usr/local/share/BLAS
LAPACKdir    = /usr/local/share/lapack-3.1.1
UTILdir      = $(home)/UTIL
SRCdir       = $(home)/SRC

DIRS        = $(BLASdir) $(LAPACKdir) $(UTILdir) $(SRCdir)
ARPACKLIB  = $(home)/libarpack_$(PLAT).a
LAPACKLIB = /usr/local/lib/liblapack.a
BLASLIB = /usr/local/lib/libblas.a
FC      = gfortran
FFLAGS  = -O
MAKE    =/usr/bin/make
这个文件被我修改的只有这些,网上搜索发现,可能还需要修改:
1.需要安装两个库:
然后安装这个库
linux-1482:/usr/local/share/ARPACK # cd /usr/local/lib
linux-1482:/usr/local/lib # ln -s /usr/local/share/ARPACK/libarpack_LINUX.a ./libarpack.a
目前为止我有没有安装这个库?怎么安装呢?
2.有人给出7条弯路,我为了避免这些弯路,该怎么做呢?
编译Arpack所做过的蠢事
1. 没有将UTIL目录下second.f 中的ETIME变量的属性修改为INTRINSIC;
2. 没有将根目录下的Armake.in中make的路径修改为/usr/bin/make;
3. 没有将根目录下的Armake.in中PLAT修改为本地系统名;
4. 没有将根目录下的Armake.in中FC修改为本地的fortran编译器命令;
5. 运行make lib后, 测试EXAMPLE/SIMPLE/sssimp.f
    使用了:    f77 -L/data/home/XXX/ARPACK/ -larpack_linux -o ss sssimp.f
    而没有使用: f77 -o ss sssimp.f -L/data/home/XXX/ARPACK/ -larpack_linux
NOTE: sssimp.f文件中的include 'debug.h'最好注释掉,如果你不想拷贝一个debug.h到EXAMPLE/SIMPLE/下的话.

6. 在ARmake.in里面的FC编译器和以后编译程序的编译器不一致.
7. 使用gfortran编译器时,没有添加选项: -ff2c; 导致生成的库和fortran 77 不兼容.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
很着急啊,请大家帮忙支招吧。谢谢了!网友们,期待了!!
回复此楼

» 本帖已获得的红花(最新10朵)

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

everythinghasitsseason.enjoyyourlife.
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
jjdg: 金币+1, 感谢参与 2012-10-12 00:42:12
田山东: 金币+4, ★★★★★最佳答案 2012-10-12 16:37:13
最后一条真胡扯, -ff2c 是个什么东西,难道是 -lf2c?如果没有记错的话, f2c 是将 fortran 77 程序转成 c 之后,调用 gcc 进行编译的一种手法

gfortran 是正宗的 fortran 编译器,兼容 fortran 77,只要参数合适,一般不会有什么问题……

话说,安装 arpack,你参考 arpack 官方网站上的文档不可以吗?如果是一些比较主流的发行版,这应该有可直接安装的包……
2楼2012-10-11 21:54:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★
田山东: 金币+1, ★★★★★最佳答案 2012-10-12 14:29:29
田山东: 金币+4, ★★★★★最佳答案 2012-10-12 16:37:20
哦,ARmake.in 中,下面两行需要修改,
FC      = gfortran
FFLAGS        = -O

我不太清楚 f77 (这个应该是 SUN 上的 fortran 编译器)中的 -cg89 是什么意思,你可以查一下,如果无关紧要,去掉就行,如果很关键,在 gfortran 的手册中找一下

至于 PLAT,改不改都可以,改了,那只是一个符号,无妨碍的。

至于
LAPACKLIB =
BLASLIB =

先空着(我不太确定要怎么填),因为 arpack 带了 blas 和 lapack 的源码,让 arpack 用它自己带的,如果提示有错误,再修改……

至于 MAKE    = /bin/make
你可以先用 which make,找出来哪个,就填哪个好了……
5楼2012-10-12 09:02:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

我手头现在没有 Linux 机器可用,所以……

其实,我前面也说过,流行的发行版中应该会带这个库,搜一下,直接安装就可以了……
6楼2012-10-12 09:03:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lurencyj

木虫 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
田山东: 金币+2, ★★★★★最佳答案, 好人一生平安! 2012-10-12 13:09:52
田山东: 金币+8, ★★★★★最佳答案 2012-10-12 16:37:30
1.  关于安装。建议你不要自己编译源代码,如果你没有头绪,没有相应的经验。最好通过suse自带的软件管理来安装arpack. 这里有个链接是介绍opensuse下如何安装软件的:http://zhidao.baidu.com/question ... t=clez_ik?zid=10081。我摘抄一下:
zypper se xxxxx 是搜索软件包
zypper in xxxxx 安装xxxxx软件包
zypper rm xxxx  删除
zypper up xxxx 更新软件

2. 关于编译。gfortran -o exe *.f90 -l libarparck.a -L 库的路径

具体的东东可以参照suse的使用科普资料,以及gfortran的编译参数
很女子很弓虽大
10楼2012-10-12 12:51:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

引用回帖:
9楼: Originally posted by 田山东 at 2012-10-12 10:39:55
user's guide 没说怎么编译程序啊。郁闷啊。一个人搞,搞死人啊

编译还需特别的东西吗?
CODE:
gfortran a.f /path/to/arpack/lib/libarpack_linux.a -o a.exe

应该就可以了啊……
18楼2012-10-12 16:05:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

引用回帖:
16楼: Originally posted by lurencyj at 2012-10-12 15:35:42
说了挺多,可能楼主还没有搞定。SUSE Linux的我不清楚。在Debian/Ubuntu下面,最佳的方案是:
sudo apt-get install build-essential
sudo apt-get install gfortran
sudo apt-get install libarpack2-dev

ar ...

赞一个,对于这类库,我也赞成用系统自带的……
19楼2012-10-12 16:07:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

引用回帖:
14楼: Originally posted by 田山东 at 2012-10-12 15:05:04
果然,需要安装两个库文件
linux-1482:/usr/local/share/ARPACK # cd /usr/local/lib
linux-1482:/usr/local/lib # ln -s /usr/local/share/ARPACK/libarpack_LINUX.a ./libarpack.a

哎。。我以为装好ARmake. ...

其实没有必要用 ln -s 形成软链接的

在 gfortran 编译的时候,记得把 libarpack.a 的路径写全就可以了……
20楼2012-10-12 16:10:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★
田山东: 金币+5, ★★★★★最佳答案, 那个文件看到了,说,如果改变libarpack的路径要干嘛干嘛的 2012-10-12 17:56:38
引用回帖:
22楼: Originally posted by 田山东 at 2012-10-12 16:27:48
老大,怎么找到这个库文件的路径啊?超级菜鸟问题了。我装好arpack之后在文件夹ARPACK里有个libarpack_SUN4.a,是它吗?...

你研究一下那个 ARPACK/example/simple/makefile 就知道了……
24楼2012-10-12 17:26:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

田山东

捐助贵宾 (著名写手)

引用回帖:
2楼: Originally posted by snoopyzhao at 2012-10-11 21:54:00
最后一条真胡扯, -ff2c 是个什么东西,难道是 -lf2c?如果没有记错的话, f2c 是将 fortran 77 程序转成 c 之后,调用 gcc 进行编译的一种手法

gfortran 是正宗的 fortran 编译器,兼容 fortran 77,只要参数合 ...

不行啊,摸索好久了。郁闷着呢、
everythinghasitsseason.enjoyyourlife.
3楼2012-10-11 22:57:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖

引用回帖:
3楼: Originally posted by 田山东 at 2012-10-11 22:57:06
不行啊,摸索好久了。郁闷着呢、...

这个程序不难安装啊,看了一下那个 README 和 ARmake.in

可能唯一需要注意的是 second.f 中的 ETIME 函数,不过 gfortran 好象支持这个函数,你把 external etime 那行去掉就可以了。

有问题,把具体的问题贴出来,就那么几个参数,折腾几下就应该可以了……
4楼2012-10-12 08:54:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

田山东

捐助贵宾 (著名写手)

引用回帖:
6楼: Originally posted by snoopyzhao at 2012-10-12 09:03:02
我手头现在没有 Linux 机器可用,所以……

其实,我前面也说过,流行的发行版中应该会带这个库,搜一下,直接安装就可以了……

谢谢你,安装的时候没问题了。关键是,怎么去用它呢?比如它自带的一个程序,我该调用哪些命令才能让他运行起来呢?
everythinghasitsseason.enjoyyourlife.
7楼2012-10-12 09:39:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖

★ ★
田山东: 金币+2, ★★★★★最佳答案, 好人啊!! 2012-10-12 13:09:38
引用回帖:
7楼: Originally posted by 田山东 at 2012-10-12 09:39:03
谢谢你,安装的时候没问题了。关键是,怎么去用它呢?比如它自带的一个程序,我该调用哪些命令才能让他运行起来呢?...

这个不是有 user's guide 吗……
8楼2012-10-12 09:58:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

田山东

捐助贵宾 (著名写手)

送鲜花一朵
user's guide 没说怎么编译程序啊。郁闷啊。一个人搞,搞死人啊
everythinghasitsseason.enjoyyourlife.
9楼2012-10-12 10:39:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 田山东 的主题更新
信息提示
请填处理意见