请教一个CLAPACK的程序编译问题。
hi, 我刚装了CLAPACK-3.2.1,但是在编译一个程序的时候出现了很多错误,想请教一下怎么解决。
我把各种静态链接库都放好位置了(/usr/local/lib/),还把头文件也放好位置了(/usr/local/include)。
g++ clapacktest.cc -lcblas -lclapack -llibf2c
/usr/local/lib/libclapack.a(sgetrf.o): In function `sgetrf_':
sgetrf.c:(.text+0x45c): undefined reference to `f2c_strsm'
sgetrf.c:(.text+0x524): undefined reference to `f2c_sgemm'
/usr/local/lib/libclapack.a(sgetrs.o): In function `sgetrs_':
sgetrs.c:(.text+0x194): undefined reference to `f2c_strsm'
sgetrs.c:(.text+0x1cf): undefined reference to `f2c_strsm'
sgetrs.c:(.text+0x303): undefined reference to `f2c_strsm'
sgetrs.c:(.text+0x33e): undefined reference to `f2c_strsm'
/usr/local/lib/libclapack.a(sgetf2.o): In function `sgetf2_':
sgetf2.c:(.text+0x180): undefined reference to `f2c_isamax'
sgetf2.c:(.text+0x1ca): undefined reference to `f2c_sswap'
sgetf2.c:(.text+0x329): undefined reference to `f2c_sger'
sgetf2.c:(.text+0x3b5): undefined reference to `f2c_sscal'
collect2: ld return 1
谢谢。我的程序如下:
#include <iostream>
using namespace std;
extern "C"
{
#include <f2c.h>
#include <clapack.h>
}
int
main (void)
{
integer M = 3;
integer N = 1;
real a[9] = { 4, 3, 11, 2, -1, 0, -1, 2, 3 };
real b[3] = { 2, 10, 8 };
integer lda;
integer ldb;
integer INFO;
lda = M;
ldb = M;
integer ipiv[M];
sgesv_ (&M, &N, a, &lda, ipiv, b, &ldb, &INFO);
if (INFO == 0)
{
for (int i = 0; i < M; i++)
{
cout << b[i] << endl;
}
}
else
{
cout << "Failed." << endl;
}
return 0;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
http://icl.cs.utk.edu/lapack-forum/viewtopic.php?f=12&t=2431