469,934 Members | 1,974 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,934 developers. It's quick & easy.

Math symbol (blas/lapack) linker error's

Hi,
I am building a c++ executable which uses fortan math libs. blas,
lapack etc.
But when i build this on HP-UX, i get below linker errors while it
build
without anyissues on Sun and Linux platforms.

dgetrs_ (first referenced in
.../../output/HPUX_32/lib/acc352/dbg/libmtx.a(denseMatrix.o)) (code)
dsytrs_ (first referenced in
.../../output/HPUX_32/lib/acc352/dbg/libmtx.a(denseMatrix.o)) (code)
zgetrf_ (first referenced in
....
dlamch (first referenced in
.../../output/tarkits/HPUX_32/acc352/dbg/cadmosPub/pub/lib/32bit/liblapack

Any poniters as what needs to be done to overcome these link errors ?
Regards,
~Pervinder
Jul 22 '05 #1
1 3039
pervinder wrote:
Hi,
I am building a c++ executable which uses fortan math libs. blas,
lapack etc.
But when i build this on HP-UX, i get below linker errors while it
build
without anyissues on Sun and Linux platforms.

dgetrs_ (first referenced in
../../output/HPUX_32/lib/acc352/dbg/libmtx.a(denseMatrix.o)) (code)
dsytrs_ (first referenced in
../../output/HPUX_32/lib/acc352/dbg/libmtx.a(denseMatrix.o)) (code)
zgetrf_ (first referenced in
...
dlamch (first referenced in
../../output/tarkits/HPUX_32/acc352/dbg/cadmosPub/pub/lib/32bit/liblapack

Any poniters as what needs to be done to overcome these link errors ?
Regards,
~Pervinder


This is off-topic here, but here are a few suggestions...

You could try all combinations of
a) either capitalizing or not-capitalizing all characters of the
Fortran function name in your C++ code
b) appending one (_), two (__) or no () underscores to the name of the
Fortran function in your C++ code.

So you might try to declare your Fortran functions in C++ code
as:
dgetrs
dgetrs_
dgetrs__
DGETRS
DGETRS_
DGETRS__

In my system the second one works, but it looks like you're also
using it and it doesn't, so you might want to experiment.
Also, are you sure you declare your Fortran functions as
'extern "C"' in your C++ code? An example from my code that
compiles fine:

extern "C" void dsyevd_ (char *job, char *uplo, int *n, double *a,
int *lda, double *w, double *work,
int *lwork, int *iwork, int *liwork,
int *info);

Finally, it looks like the 'dlamch' function referenced from
lapack itself is missing, so apart from your C++ code not seeing
the lapack/blas functions dgetrs, dsytrs, zgetrf, your lapack
lib might require some external library also (like libg2c or blas).
You might want to check this.

HTH, if you fix this please let know
- J.
Jul 22 '05 #2

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

1 post views Thread by Edward C. Jones | last post: by
6 posts views Thread by Olivier Lechenne | last post: by
2 posts views Thread by Ian Taite | last post: by
110 posts views Thread by Gregory Pietsch | last post: by
8 posts views Thread by pavan734 | last post: by
1 post views Thread by Ken Dere | last post: by
2 posts views Thread by aberte | last post: by
6 posts views Thread by nitroamos | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.