Perché ricevo errori installano versioni precompilate di LAPACK su Windows?
-
22-09-2019 - |
Domanda
Sto cercando di utilizzare la libreria matrice di Armadillo di fare calcualtions matrice e ha bisogno BLAS e LAPACK. La documentazione Armadillo consigliato ottenere le versioni precompilate da http://www.stanford.edu/ ~ VKL / code / libs.html
Non ci sono file .lib e dll in là. L'unico problema è che non so come ottenere Visual Studio (Express Edition 2008) per riconoscere questi file. Cerco di copiarli di Visual C ++ includono e le directory lib C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\
e C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\lib\
, ma non sembra di fare nulla, perché quando provo a compilare il mio programma, ho un sacco di errori "simbolo esterno non risolto", che dicono che può' t trovare funzioni LAPACK.
EDIT:
Qui ci sono i messaggi di errore:
1>Linking... 1>LINK : warning LNK4076: invalid incremental status file 'C:\Users\User\Documents\Visual Studio 2008\Projects\TentPitcher\Debug\TentPitcher.ilk'; linking nonincrementally 1> Creating library C:\Users\User\Documents\Visual Studio 2008\Projects\TentPitcher\Debug\TentPitcher.lib and object C:\Users\User\Documents\Visual Studio 2008\Projects\TentPitcher\Debug\TentPitcher.exp 1>Cell3DXT.obj : error LNK2019: unresolved external symbol _zgetrf_ referenced in function "void __cdecl arma::lapack::getrf_(int *,int *,double *,int *,int *,int *)" (??$getrf_@N@lapack@arma@@YAXPAH0PAN000@Z) 1>ThreeCell3DXT.obj : error LNK2001: unresolved external symbol _zgetrf_ 1>Cell3DXT.obj : error LNK2019: unresolved external symbol _cgetrf_ referenced in function "void __cdecl arma::lapack::getrf_(int *,int *,double *,int *,int *,int *)" (??$getrf_@N@lapack@arma@@YAXPAH0PAN000@Z) 1>ThreeCell3DXT.obj : error LNK2001: unresolved external symbol _cgetrf_ 1>Cell3DXT.obj : error LNK2019: unresolved external symbol _dgetrf_ referenced in function "void __cdecl arma::lapack::getrf_(int *,int *,double *,int *,int *,int *)" (??$getrf_@N@lapack@arma@@YAXPAH0PAN000@Z) 1>ThreeCell3DXT.obj : error LNK2001: unresolved external symbol _dgetrf_ 1>Cell3DXT.obj : error LNK2019: unresolved external symbol _sgetrf_ referenced in function "void __cdecl arma::lapack::getrf_(int *,int *,double *,int *,int *,int *)" (??$getrf_@N@lapack@arma@@YAXPAH0PAN000@Z) 1>ThreeCell3DXT.obj : error LNK2001: unresolved external symbol _sgetrf_ 1>Cell3DXT.obj : error LNK2019: unresolved external symbol _zgemv_ referenced in function "void __cdecl arma::blas::gemv_(char const *,int const *,int const *,double const *,double const *,int const *,double const *,int const *,double const *,double *,int const *)" (??$gemv_@N@blas@arma@@YAXPBDPBH1PBN21212PAN1@Z) 1>ThreeCell3DXT.obj : error LNK2001: unresolved external symbol _zgemv_ 1>TwoCell3DXT.obj : error LNK2001: unresolved external symbol _zgemv_ 1>Cell3DXT.obj : error LNK2019: unresolved external symbol _cgemv_ referenced in function "void __cdecl arma::blas::gemv_(char const *,int const *,int const *,double const *,double const *,int const *,double const *,int const *,double const *,double *,int const *)" (??$gemv_@N@blas@arma@@YAXPBDPBH1PBN21212PAN1@Z) 1>ThreeCell3DXT.obj : error LNK2001: unresolved external symbol _cgemv_ 1>TwoCell3DXT.obj : error LNK2001: unresolved external symbol _cgemv_ 1>Cell3DXT.obj : error LNK2019: unresolved external symbol _dgemv_ referenced in function "void __cdecl arma::blas::gemv_(char const *,int const *,int const *,double const *,double const *,int const *,double const *,int const *,double const *,double *,int const *)" (??$gemv_@N@blas@arma@@YAXPBDPBH1PBN21212PAN1@Z) 1>ThreeCell3DXT.obj : error LNK2001: unresolved external symbol _dgemv_ 1>TwoCell3DXT.obj : error LNK2001: unresolved external symbol _dgemv_ 1>Cell3DXT.obj : error LNK2019: unresolved external symbol _sgemv_ referenced in function "void __cdecl arma::blas::gemv_(char const *,int const *,int const *,double const *,double const *,int const *,double const *,int const *,double const *,double *,int const *)" (??$gemv_@N@blas@arma@@YAXPBDPBH1PBN21212PAN1@Z) 1>ThreeCell3DXT.obj : error LNK2001: unresolved external symbol _sgemv_ 1>TwoCell3DXT.obj : error LNK2001: unresolved external symbol _sgemv_ 1>Cell3DXT.obj : error LNK2019: unresolved external symbol _zgemm_ referenced in function "void __cdecl arma::blas::gemm_(char const *,char const *,int const *,int const *,int const *,double const *,double const *,int const *,double const *,int const *,double const *,double *,int const *)" (??$gemm_@N@blas@arma@@YAXPBD0PBH11PBN21212PAN1@Z) 1>ThreeCell3DXT.obj : error LNK2001: unresolved external symbol _zgemm_ 1>TwoCell3DXT.obj : error LNK2001: unresolved external symbol _zgemm_ 1>Cell3DXT.obj : error LNK2019: unresolved external symbol _cgemm_ referenced in function "void __cdecl arma::blas::gemm_(char const *,char const *,int const *,int const *,int const *,double const *,double const *,int const *,double const *,int const *,double const *,double *,int const *)" (??$gemm_@N@blas@arma@@YAXPBD0PBH11PBN21212PAN1@Z) 1>ThreeCell3DXT.obj : error LNK2001: unresolved external symbol _cgemm_ 1>TwoCell3DXT.obj : error LNK2001: unresolved external symbol _cgemm_ 1>Cell3DXT.obj : error LNK2019: unresolved external symbol _dgemm_ referenced in function "void __cdecl arma::blas::gemm_(char const *,char const *,int const *,int const *,int const *,double const *,double const *,int const *,double const *,int const *,double const *,double *,int const *)" (??$gemm_@N@blas@arma@@YAXPBD0PBH11PBN21212PAN1@Z) 1>ThreeCell3DXT.obj : error LNK2001: unresolved external symbol _dgemm_ 1>TwoCell3DXT.obj : error LNK2001: unresolved external symbol _dgemm_ 1>Cell3DXT.obj : error LNK2019: unresolved external symbol _sgemm_ referenced in function "void __cdecl arma::blas::gemm_(char const *,char const *,int const *,int const *,int const *,double const *,double const *,int const *,double const *,int const *,double const *,double *,int const *)" (??$gemm_@N@blas@arma@@YAXPBD0PBH11PBN21212PAN1@Z) 1>ThreeCell3DXT.obj : error LNK2001: unresolved external symbol _sgemm_ 1>TwoCell3DXT.obj : error LNK2001: unresolved external symbol _sgemm_ 1>Cell3DXT.obj : error LNK2019: unresolved external symbol _zgetri_ referenced in function "void __cdecl arma::lapack::getri_(int *,double *,int *,int *,double *,int *,int *)" (??$getri_@N@lapack@arma@@YAXPAHPAN00100@Z) 1>ThreeCell3DXT.obj : error LNK2001: unresolved external symbol _zgetri_ 1>Cell3DXT.obj : error LNK2019: unresolved external symbol _cgetri_ referenced in function "void __cdecl arma::lapack::getri_(int *,double *,int *,int *,double *,int *,int *)" (??$getri_@N@lapack@arma@@YAXPAHPAN00100@Z) 1>ThreeCell3DXT.obj : error LNK2001: unresolved external symbol _cgetri_ 1>Cell3DXT.obj : error LNK2019: unresolved external symbol _dgetri_ referenced in function "void __cdecl arma::lapack::getri_(int *,double *,int *,int *,double *,int *,int *)" (??$getri_@N@lapack@arma@@YAXPAHPAN00100@Z) 1>ThreeCell3DXT.obj : error LNK2001: unresolved external symbol _dgetri_ 1>Cell3DXT.obj : error LNK2019: unresolved external symbol _sgetri_ referenced in function "void __cdecl arma::lapack::getri_(int *,double *,int *,int *,double *,int *,int *)" (??$getri_@N@lapack@arma@@YAXPAHPAN00100@Z) 1>ThreeCell3DXT.obj : error LNK2001: unresolved external symbol _sgetri_ 1>TwoCell3DXT.obj : error LNK2019: unresolved external symbol _dgesvd_ referenced in function "void __cdecl arma::lapack::gesvd_(char *,char *,int *,int *,double *,int *,double *,double *,int *,double *,int *,double *,int *,int *)" (??$gesvd_@N@lapack@arma@@YAXPAD0PAH1PAN122121211@Z) 1>TwoCell3DXT.obj : error LNK2019: unresolved external symbol _sgesvd_ referenced in function "void __cdecl arma::lapack::gesvd_(char *,char *,int *,int *,double *,int *,double *,double *,int *,double *,int *,double *,int *,int *)" (??$gesvd_@N@lapack@arma@@YAXPAD0PAH1PAN122121211@Z) 1>C:\Users\User\Documents\Visual Studio 2008\Projects\TentPitcher\Debug\TentPitcher.exe : fatal error LNK1120: 18 unresolved externals 1>Build log was saved at "file://c:\Users\User\Documents\Visual Studio 2008\Projects\TentPitcher\TentPitcher\Debug\BuildLog.htm" 1>TentPitcher - 43 error(s), 1 warning(s)
"Cell3DXT
", "TwoCell3DXT
", e "ThreeCell3DXT
" sono classi nel mio codice. Anche nel LAPACK e file BLAS sopra, ci sono "file .exp" -? Quali sono questi e fare quelli hanno qualcosa a che fare con il problema
Soluzione
ho capito la risposta al mio problema. Il problema è che ho saputo che ho dovuto mettere la directory che contiene il file LIB LAPACK nella lista delle directory di libreria (Strumenti -> Opzioni -> Progetti e soluzioni -> Directory di VC ++ -> File Library) ma ha dimenticato che ho avuto anche a aggiungerlo alle "dipendenze aggiuntive" sotto Progetto -> (nome del progetto) Proprietà -> Linker -.> ingresso
Altri suggerimenti
Ho avuto lo stesso problema, ma ho risolto nel seguente modo:
- Scaricare ed estrarre il LAPACK (LIB + DLL) e BLASS (LIB + DLL) dal sito di Victor,
- Aggiungi i percorsi LAPACK e BLASS al linker directory di ricerca, ad esempio `Project-> Crea Opzioni-> Ricerca Directories> Linker' in Code :: Blocks,
- Aggiungi lapack_win32.lib Impostazioni Linker,
- Decommenta `#define ARMA_USE_LAPACK' in [Armadillo PATH] /include/armadillo_bits/config.hpp