Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations strongm on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

using lapack

Status
Not open for further replies.

shasa

Programmer
Aug 14, 2010
17
IR
i am going to use lapack library , but i have this error :
Console1.obj : error LNK2001: unresolved external symbol _DGESV@32
Console1.exe : fatal error LNK1120: 1 unresolved externals

i copy lapack and blas library where my program is,what should i do?

how about if i want to evaluate the eigen value of a matrix?
 
That is a link error

1) how are you linking it
2) what is the lapack library called
3) Can you raise the eigen value as a separate thread - otherwise this thread will get very confused by MVPs answering two queries
 
i just copy these libraries in where my program is and use LAPACKd.lib&BLASd.lib
what do you mean by 3)???

 
_DGESV@32 means that you have called the subroutine DGESV with 32 bytes of arguments passed via the stack. This is the so-called STDCALL technique of Microsoft on a 32 bit architecture where the callee pops the stack (on Unix and Windows-64, the caller pops the stack).

To avoid the destruction of the stack (and a probable crash of the computer) in case of a wrong number of arguments between the call statement and the subroutine/function definition, Microsoft has introduce a decoration to subroutine/function names (a particular name mangling), in adding "@number_of_bytes" to the normal routine/subroutine name.

As consequence, a wrong number of arguments leads to a mismatch of mangled names between the caller and the callee which may result in a linking error (the mangled name computed by the callee does not correspond to any valid mangled name).

In conclusion, I suggest that you check carefully the arguments of the subroutine DGESV.

About eigenvalues, you should download the library EISPACK designed for that.

François Jacq
 
actuallly for DGESV i just try to run a sample program as what it was explain in netlib but i had that error((i think arguments r carefully checked) , besides at last o need to run a subroutin in lapack,but i have errors too, does my OS take part in this error? what should i do?
 
The 32 in _DGESV@32 is normally divided by 4, which means _DGESV has 8 parameters.

How are you linking? Are you using
o an IDE (if so which one)
o a makefile - what does the compile/link line look like
o just linking on the command line? - what do you type to do this.

The OS doesn't have anything to do with the error but it helps to know which OS you are using as different tools are associated with different OSs.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top