phimar (conviviality) 在 ta 的帖子中提到:
标 题: 【HELP】关于linux下fortran程序编译报错
发信站: 北大未名站 (2014年02月21日01:54:46 星期五), 转信
最近在试图运行一大型fortran程序,然后该fortran程序在编译过程中会用到一个主要是
C语言写的外部库叫做hypre,于是每每到了调用hypre之时,就开始报以下错误,试了好
多遍都是同样的如下的错误:
/ccs/home/phimar/opt/hypre//lib/libHYPRE.a(par_cr.o): In function
`hypre_BoomerAMGCoarsenCR1':
par_cr.c:(.text+0x20e): undefined reference to `_simd_drand48_pd64x2'
/ccs/home/phimar/opt/hypre//lib/libHYPRE.a(par_cr.o): In function `cr':
par_cr.c:(.text+0xd4e): undefined reference to `_simd_drand48_pd64x2'
/usr/bin/ld: link errors found, deleting executable `/tmp/work/phimar/NGA_2wa
y/bin/arts'
make[1]: *** [arts] Error 1
make[1]: Leaving directory `/autofs/na3_home1/phimar/NGA/src'
make: *** [default] Error 2
是在linux下的intel 编译器下编译的。给我感觉好像是编译器哪里出了错。但是编译外
部库hypre的时候是不报错的,但我十分怀疑在hypre编译过程中有神马隐患。有木有知道
编译libHYPRE的时候不需要link,只会留下undefined symbols。
然后编译你这个程序的时候需要link,必需resolve undefined
symbols,所以出错。