LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 962|回复: 10

不只为什么,这个目标库就是链不上,我核对过路径的

[复制链接]
发表于 2004-11-28 20:22:00 | 显示全部楼层 |阅读模式
卡在这里进行不下去,请指教!
g77  -o bin/Linux_P4_CBLAS_lam/xhpl HPL_pddriver.o  HPL_pdinfo.o  HPL_pdtest.o lib/Linux_P4_CBLAS_lam/libhpl.a  

/home/lam/hpl/lib/Linux_P4_CBLAS_lam/libhpl.a(HPL_dgemv.o)(.text+0x96): In function `HPL_dgemv':
: undefined reference to `dgemv_'
/home/lam/hpl/lib/Linux_P4_CBLAS_lam/libhpl.a(HPL_dgemv.o)(.text+0x108): In function `HPL_dgemv':
: undefined reference to `dgemv_'
/home/lam/hpl/lib/Linux_P4_CBLAS_lam/libhpl.a(HPL_dcopy.o)(.text+0x2b): In function `HPL_dcopy':
: undefined reference to `dcopy_'
/home/lam/hpl/lib/Linux_P4_CBLAS_lam/libhpl.a(HPL_daxpy.o)(.text+0x3b): In function `HPL_daxpy':
: undefined reference to `daxpy_'
/home/smonkey/lam/hpl/lib/Linux_P4_CBLAS_lam/libhpl.a(HPL_dscal.o)(.text+0x2b): In function `HPL_dscal':
: undefined reference to `dscal_'
/home/lam/hpl/lib/Linux_P4_CBLAS_lam/libhpl.a(HPL_idamax.o)(.text+0x25): In function `HPL_idamax':
: undefined reference to `idamax_'
/home/lam/hpl/lib/Linux_P4_CBLAS_lam/libhpl.a(HPL_dtrsv.o)(.text+0xaa): In function `HPL_dtrsv':
: undefined reference to `dtrsv_'
发表于 2004-11-29 15:20:59 | 显示全部楼层
肯定是路径没有指定正确。多试试吧。
 楼主| 发表于 2004-11-29 17:20:46 | 显示全部楼层

我已经在设定的路径里面看到这个库啦

我该怎么办呢?我现在是把hpl.tar这个包重新解压,打算重新做一次。我是要对我的集群做一次linpack测试,力尽千辛万苦终于将所有的.o文件生成,没想到在最后一个链接这里出问题了,真是一筹莫展。
发表于 2004-11-29 18:03:29 | 显示全部楼层
看出错信息感觉是库本身有问题

比如编译库用的gcc和现在链接用的gcc版本不同,有时会出现这样的问题

可以尝试找到更高版本的库,或用低版本的gcc编译、链接现在的程序
 楼主| 发表于 2004-11-30 15:40:11 | 显示全部楼层

查了一下libhpl.a的组成

因为错误提示里的静态库libhpl.a是在make过程生成的,我查了一下:
/home/lam/hpl/lib/Linux_P4_CBLAS_lam/> ar -t libhpl.a
HPL_dlacpy.o
HPL_dlatcpy.o
HPL_fprintf.o
HPL_warn.o
HPL_abort.o
HPL_dlaprnt.o
HPL_dlange.o
HPL_dlamch.o
HPL_dcopy.o
HPL_daxpy.o
HPL_dscal.o
HPL_idamax.o
HPL_dgemv.o
HPL_dtrsv.o
HPL_dger.o
HPL_dgemm.o
HPL_dtrsm.o
HPL_1ring.o
HPL_1rinM.o
HPL_2ring.o
HPL_2rinM.o
HPL_blong.o
HPL_blonM.o
HPL_packL.o
HPL_copyL.o
HPL_binit.o
HPL_bcast.o
HPL_bwait.o
HPL_send.o
HPL_recv.o
HPL_sdrv.o
HPL_grid_init.o
HPL_pnum.o
HPL_grid_info.o
HPL_grid_exit.o
HPL_broadcast.o
HPL_reduce.o
HPL_all_reduce.o
HPL_barrier.o
HPL_min.o
HPL_max.o
HPL_sum.o
HPL_pdpanel_new.o
HPL_pdpanel_init.o
HPL_pdpanel_disp.o
HPL_pdpanel_free.o
HPL_indxg2l.o
HPL_indxg2lp.o
HPL_indxg2p.o
HPL_indxl2g.o
HPL_infog2l.o
HPL_numroc.o
HPL_numrocI.o
HPL_dlaswp00N.o
HPL_dlaswp10N.o
HPL_dlaswp01N.o
HPL_dlaswp01T.o
HPL_dlaswp02N.o
HPL_dlaswp03N.o
HPL_dlaswp03T.o
HPL_dlaswp04N.o
HPL_dlaswp04T.o
HPL_dlaswp05N.o
HPL_dlaswp05T.o
HPL_dlaswp06N.o
HPL_dlaswp06T.o
HPL_pwarn.o
HPL_pabort.o
HPL_pdlaprnt.o
HPL_pdlamch.o
HPL_pdlange.o
HPL_dlocmax.o
HPL_dlocswpN.o
HPL_dlocswpT.o
HPL_pdmxswp.o
HPL_pdpancrN.o
HPL_pdpancrT.o
HPL_pdpanllN.o
HPL_pdpanllT.o
HPL_pdpanrlN.o
HPL_pdpanrlT.o
HPL_pdrpanllN.o
HPL_pdrpanllT.o
HPL_pdrpancrN.o
HPL_pdrpancrT.o
HPL_pdrpanrlN.o
HPL_pdrpanrlT.o
HPL_pdfact.o
HPL_pipid.o
HPL_plindx0.o
HPL_pdlaswp00N.o
HPL_pdlaswp00T.o
HPL_perm.o
HPL_logsort.o
HPL_plindx10.o
HPL_plindx1.o
HPL_spreadN.o
HPL_spreadT.o
HPL_rollN.o
HPL_rollT.o
HPL_equil.o
HPL_pdlaswp01N.o
HPL_pdlaswp01T.o
HPL_pdupdateNN.o
HPL_pdupdateNT.o
HPL_pdupdateTN.o
HPL_pdupdateTT.o
HPL_pdtrsv.o
HPL_pdgesv0.o
HPL_pdgesvK1.o
HPL_pdgesvK2.o
HPL_pdgesv.o
HPL_dmatgen.o
HPL_ladd.o
HPL_lmul.o
HPL_xjumpm.o
HPL_jumpit.o
HPL_rand.o
HPL_setran.o
HPL_timer.o
HPL_timer_cputime.o
HPL_timer_walltime.o
HPL_pdmatgen.o
HPL_ptimer.o
HPL_ptimer_cputime.o
HPL_ptimer_walltime.o
发表于 2004-11-30 16:10:40 | 显示全部楼层
看这个没有用,你应该看看dgemv、dcopy、daxpy_等没有解析的符号在那个模块中。
 楼主| 发表于 2004-11-30 17:56:38 | 显示全部楼层

源程序里根本没有提示标识符的引用:(

在它所提示的函数中根本就没有对(undefined reference to `dgemv_')所提示的这些变量的引用呀,但的确有HPL_dgemv这样的函数,函数中根本就没有对提示标识符的引用
 楼主| 发表于 2004-11-30 18:05:54 | 显示全部楼层

关于版本问题

libhpl.a这个静态库,是由.o文件通过“ar -r"生成的静态库,而.o的生成和我后来试图链接用的都是一个gcc,所以我想版本不一致问题应该不存在。还有什么可能呢?我查了网上这种错误出现的解决办法,有说要加-lz,有说gcc编译.cpp文件会出现这样的问题,我也试了,但好象解决不了。我觉得源程序出问题的可能性不大,我是在http://www.netlib.org/benchmark/ ... c试试试运气。
我好不容易读懂了它的makefile等文件,没想到遇到这样的问题,
 楼主| 发表于 2004-11-30 18:19:37 | 显示全部楼层

谢谢大家不吝指教,尽管问题目前还是没有解决

我就是觉得特别的不甘心:(,特别的无奈,从上周出现这个错误,怎么弄都搞不定,真是气死人。也只好求助于网络上的各位高手
发表于 2004-12-1 09:25:49 | 显示全部楼层
要是我碰到你这个问题,或许早就找出原因了。但你对链接器工作的原理不了解,只能碰运气啦。你这样吧。用nm libhpl.a看看这个库有没有dgemv、dcopy、daxpy_这些符号。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表