t******1 发帖数: 334 | 1 大家有在C里面call lapack subroutine么?
我在学校的超级计算机上编译,include跟linker的flag都设好了,但是还是出现
undefined reference to这个错误,不知道哪儿出问题了,有人知道么?
google结果,据说可能是一个libg2c的库的问题,但我一个新手,啥都不懂,能知道
linker已经觉得很牛鼻了,这个问题对我而言很棘手。
希望懂的同志能帮一下手。谢谢。 |
p****s 发帖数: 32405 | 2 undefined reference to what?
是不是某个函数/变量没定义就在用?
【在 t******1 的大作中提到】 : 大家有在C里面call lapack subroutine么? : 我在学校的超级计算机上编译,include跟linker的flag都设好了,但是还是出现 : undefined reference to这个错误,不知道哪儿出问题了,有人知道么? : google结果,据说可能是一个libg2c的库的问题,但我一个新手,啥都不懂,能知道 : linker已经觉得很牛鼻了,这个问题对我而言很棘手。 : 希望懂的同志能帮一下手。谢谢。
|
s****t 发帖数: 698 | 3
貌似是用了某个lib的函数,没link上吧。
如果文件不多,一个一个定位一下吧。
【在 t******1 的大作中提到】 : 大家有在C里面call lapack subroutine么? : 我在学校的超级计算机上编译,include跟linker的flag都设好了,但是还是出现 : undefined reference to这个错误,不知道哪儿出问题了,有人知道么? : google结果,据说可能是一个libg2c的库的问题,但我一个新手,啥都不懂,能知道 : linker已经觉得很牛鼻了,这个问题对我而言很棘手。 : 希望懂的同志能帮一下手。谢谢。
|
m*****r 发帖数: 130 | 4 你的知道是啥symbol找不到吧,然后看看在那个lib里,放到你的连接是参数就好了
【在 t******1 的大作中提到】 : 大家有在C里面call lapack subroutine么? : 我在学校的超级计算机上编译,include跟linker的flag都设好了,但是还是出现 : undefined reference to这个错误,不知道哪儿出问题了,有人知道么? : google结果,据说可能是一个libg2c的库的问题,但我一个新手,啥都不懂,能知道 : linker已经觉得很牛鼻了,这个问题对我而言很棘手。 : 希望懂的同志能帮一下手。谢谢。
|
t******1 发帖数: 334 | 5 多谢各位的回答。
的确是找不到某一个函数,那个函数是用fortran语言写的。
定义在头文件里面已经定义过了,include路径也找到了,所以应该不是定义的问题。
应该是link的时候出的问题。我用的是一个lapack的库里的一个函数,但是我link的路
径明明已经设好了。
-L/opt/intel/mkl/10.0.4.023/lib/em64t -llapack
不知道上面某仁兄说的“一个一个的定位“是什么意思。 |
l***o 发帖数: 390 | 6 我以前遇到过这样的问题,大多是不同的编译器用不同的 name mangling 方法造成的
,特别是函数名字中有下划线时。比如用 gfortran 连接 g77 编译的库就要加上编译
选项 -ff2c。那个函数名中有下划线吗?
还有一种可能是连接库的顺序不对,不过比较少见,一般不会把 .o 文件放在 -
llapack 之后的。可以尝试把 lapack 库在待连接文件中的顺序向后调整一下。
【在 t******1 的大作中提到】 : 多谢各位的回答。 : 的确是找不到某一个函数,那个函数是用fortran语言写的。 : 定义在头文件里面已经定义过了,include路径也找到了,所以应该不是定义的问题。 : 应该是link的时候出的问题。我用的是一个lapack的库里的一个函数,但是我link的路 : 径明明已经设好了。 : -L/opt/intel/mkl/10.0.4.023/lib/em64t -llapack : 不知道上面某仁兄说的“一个一个的定位“是什么意思。
|
t******1 发帖数: 334 | 7 谢谢楼上,已经找到答案了,就在intel mkl userguide里,我没有仔细读,有linking
这一章的。
不过话说,一周之前,我还只知道gcc *.c,什么link, flag什么都不懂,这也算是学
习的过程了。 |