Hello, I want to know how to use CLAPACK 3.1.1 via VC++6.0.
I have tried a quite small example, but there are always some problems during the compilation.
If I use clapack.lib for debug version. I will get following error messages:
LINK : warning LNK4098: defaultlib "LIBCMT" conflicts with use of other libs; use /NODEFAULTLIB:library
clapack.lib(sgetrs1.obj) : error LNK2001: unresolved external symbol _f2c_strsm
clapack.lib(sgetrf1.obj) : error LNK2001: unresolved external symbol _f2c_strsm
clapack.lib(sgetrf1.obj) : error LNK2001: unresolved external symbol _f2c_sgemm
clapack.lib(sgetf21.obj) : error LNK2001: unresolved external symbol _f2c_sger
clapack.lib(sgetf21.obj) : error LNK2001: unresolved external symbol _f2c_sscal
clapack.lib(sgetf21.obj) : error LNK2001: unresolved external symbol _f2c_sswap
clapack.lib(sgetf21.obj) : error LNK2001: unresolved external symbol _f2c_isamax
clapack.lib(ilaenv1.obj) : error LNK2001: unresolved external symbol _s_cmp
clapack.lib(ilaenv1.obj) : error LNK2001: unresolved external symbol _s_copy
clapack.lib(ilaenv1.obj) : error LNK2001: unresolved external symbol __ftol2_sse
clapack.lib(slamch.obj) : error LNK2001: unresolved external symbol __ftol2_sse
clapack.lib(slamch.obj) : error LNK2001: unresolved external symbol _pow_ri
clapack.lib(iparmq1.obj) : error LNK2001: unresolved external symbol _i_nint
Debug/test_clapack1.exe : fatal error LNK1120: 11 unresolved externals
Error executing link.exe.
test_clapack1.exe - 14 error(s), 1 warning(s)
If I use clapackd.lib for debug version, I will get:
Linking...
clapackd.lib(sgetf21.obj) : error LNK2001: unresolved external symbol __RTC_CheckEsp
clapackd.lib(ilaenv1.obj) : error LNK2001: unresolved external symbol __RTC_CheckEsp
clapackd.lib(slamch.obj) : error LNK2001: unresolved external symbol __RTC_CheckEsp
clapackd.lib(iparmq1.obj) : error LNK2001: unresolved external symbol __RTC_CheckEsp
clapackd.lib(sgesv1.obj) : error LNK2001: unresolved external symbol __RTC_CheckEsp
clapackd.lib(sgetrs1.obj) : error LNK2001: unresolved external symbol __RTC_CheckEsp
clapackd.lib(sgetrf1.obj) : error LNK2001: unresolved external symbol __RTC_CheckEsp
clapackd.lib(xerbla1.obj) : error LNK2001: unresolved external symbol __RTC_CheckEsp
clapackd.lib(slamch.obj) : error LNK2001: unresolved external symbol @_RTC_CheckStackVars@8
clapackd.lib(iparmq1.obj) : error LNK2001: unresolved external symbol @_RTC_CheckStackVars@8
clapackd.lib(sgesv1.obj) : error LNK2001: unresolved external symbol @_RTC_CheckStackVars@8
clapackd.lib(sgetrs1.obj) : error LNK2001: unresolved external symbol @_RTC_CheckStackVars@8
clapackd.lib(sgetrf1.obj) : error LNK2001: unresolved external symbol @_RTC_CheckStackVars@8
clapackd.lib(sgetf21.obj) : error LNK2001: unresolved external symbol @_RTC_CheckStackVars@8
clapackd.lib(slamch.obj) : error LNK2001: unresolved external symbol __RTC_Shutdown
clapackd.lib(iparmq1.obj) : error LNK2001: unresolved external symbol __RTC_Shutdown
clapackd.lib(ieeeck1.obj) : error LNK2001: unresolved external symbol __RTC_Shutdown
clapackd.lib(slaswp1.obj) : error LNK2001: unresolved external symbol __RTC_Shutdown
clapackd.lib(lsame1.obj) : error LNK2001: unresolved external symbol __RTC_Shutdown
clapackd.lib(sgetf21.obj) : error LNK2001: unresolved external symbol __RTC_Shutdown
clapackd.lib(ilaenv1.obj) : error LNK2001: unresolved external symbol __RTC_Shutdown
clapackd.lib(sgesv1.obj) : error LNK2001: unresolved external symbol __RTC_Shutdown
clapackd.lib(sgetrs1.obj) : error LNK2001: unresolved external symbol __RTC_Shutdown
clapackd.lib(sgetrf1.obj) : error LNK2001: unresolved external symbol __RTC_Shutdown
clapackd.lib(xerbla1.obj) : error LNK2001: unresolved external symbol __RTC_Shutdown
clapackd.lib(slamch.obj) : error LNK2001: unresolved external symbol __RTC_InitBase
clapackd.lib(iparmq1.obj) : error LNK2001: unresolved external symbol __RTC_InitBase
clapackd.lib(ieeeck1.obj) : error LNK2001: unresolved external symbol __RTC_InitBase
clapackd.lib(slaswp1.obj) : error LNK2001: unresolved external symbol __RTC_InitBase
clapackd.lib(lsame1.obj) : error LNK2001: unresolved external symbol __RTC_InitBase
clapackd.lib(sgetf21.obj) : error LNK2001: unresolved external symbol __RTC_InitBase
clapackd.lib(ilaenv1.obj) : error LNK2001: unresolved external symbol __RTC_InitBase
clapackd.lib(sgesv1.obj) : error LNK2001: unresolved external symbol __RTC_InitBase
clapackd.lib(sgetrs1.obj) : error LNK2001: unresolved external symbol __RTC_InitBase
clapackd.lib(sgetrf1.obj) : error LNK2001: unresolved external symbol __RTC_InitBase
clapackd.lib(xerbla1.obj) : error LNK2001: unresolved external symbol __RTC_InitBase
clapackd.lib(sgetrs1.obj) : error LNK2001: unresolved external symbol _f2c_strsm
clapackd.lib(sgetrf1.obj) : error LNK2001: unresolved external symbol _f2c_strsm
clapackd.lib(sgetrf1.obj) : error LNK2001: unresolved external symbol _f2c_sgemm
clapackd.lib(sgetf21.obj) : error LNK2001: unresolved external symbol _f2c_sger
clapackd.lib(sgetf21.obj) : error LNK2001: unresolved external symbol _f2c_sscal
clapackd.lib(sgetf21.obj) : error LNK2001: unresolved external symbol _f2c_sswap
clapackd.lib(sgetf21.obj) : error LNK2001: unresolved external symbol _f2c_isamax
clapackd.lib(ilaenv1.obj) : error LNK2001: unresolved external symbol _s_cmp
clapackd.lib(ilaenv1.obj) : error LNK2001: unresolved external symbol _s_copy
clapackd.lib(ilaenv1.obj) : error LNK2001: unresolved external symbol __ftol2_sse
clapackd.lib(slamch.obj) : error LNK2001: unresolved external symbol __ftol2_sse
clapackd.lib(slamch.obj) : error LNK2001: unresolved external symbol _pow_ri
clapackd.lib(iparmq1.obj) : error LNK2001: unresolved external symbol _i_nint
Debug/test_clapack1.exe : fatal error LNK1120: 15 unresolved externals
Error executing link.exe.
test_clapack1.exe - 50 error(s), 0 warning(s)
I really don't know how to make compilation correctly in VC++6.0!
Please help me!
Thank you very much!
PS: The small example which I used
#include <iostream>
using namespace std;
extern "C"
{
#include <f2c.h>
#include <blaswrap.h>
#include <clapack.h>
}
int main(int argc, char* argv[])
{
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;
ipiv = (integer *)new integer[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;
}

