求助 未定义的引用

Ali_love_Peach 2014-06-13 04:41:04
我最近想用一个数学库,在cygwin环境下,用gcc、gfortran编译器
gcc -O3 -O3 -fexceptions -fPIC -DNPARTITION -DNPARTITION -o cholmod_demo -I../Include -I../../SuiteSparse_config cholmod_demo.c ../Lib/libcholmod.a ../../AMD/Lib/libamd.a ../../COLAMD/Lib/libcolamd.a ../../SuiteSparse_config/libsuitesparseconfig.a ../../CCOLAMD/Lib/libccolamd.a ../../CAMD/Lib/libcamd.a /cygdrive/C/Users/lenovo/Desktop/SuiteSparse-4.3.0/SuiteSparse/libacml.a -lgfortran ../../SuiteSparse_config/xerbla/libcerbla.a -lm -lrt
报错:
../Lib/libcholmod.a(cholmod_super_numeric.o):cholmod_super_numeric.c:(.text+0xe1c):对‘dsyrk_’未定义的引用
../Lib/libcholmod.a(cholmod_super_numeric.o):cholmod_super_numeric.c:(.text+0xf43):对‘dgemm_’未定义的引用
(后面还有很多)
这些应该是在libacml.a这个库里实现的
$ nm ../libacml.a | grep dsyrk_
U dsyrk_
U dsyrk_
U dsyrk_
U dsyrk_
dsyrk_cw.o:
U dsyrk_
00000000 T dsyrk_
这样查看,应该是没问题的呀,libacml.a这个库里有它的定义呀
这种情况有可能是什么原因呢?
...全文
317 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ali_love_Peach 2014-07-18
  • 打赏
  • 举报
回复
搞明白了,是因为libacml.a这个库里定义的是_dgemm_,多一个下划线,与标准的BLAS不一致。大概是这么个情况,具体是多一个还是少一个记不清了。
静之深 2014-06-18
  • 打赏
  • 举报
回复
没有加-L吧: gcc -O3 -O3 -fexceptions -fPIC -DNPARTITION -DNPARTITION -o cholmod_demo -I../Include -I../../SuiteSparse_config cholmod_demo.c -L ../Lib/libcholmod.a -L ../../AMD/Lib/libamd.a -L ../../COLAMD/Lib/libcolamd.a -L ../../SuiteSparse_config/libsuitesparseconfig.a -L ../../CCOLAMD/Lib/libccolamd.a -L ../../CAMD/Lib/libcamd.a -L /cygdrive/C/Users/lenovo/Desktop/SuiteSparse-4.3.0/SuiteSparse/libacml.a -lgfortran -L ../../SuiteSparse_config/xerbla/libcerbla.a -lm -lrt

23,127

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧