لماذا أحصل على أخطاء تثبيت إصدارات مسبقة من Lapack على Windows؟

StackOverflow https://stackoverflow.com/questions/2324362

سؤال

أحاول استخدام مكتبة مصفوفة Armadillo للقيام بتكلس المصفوفة وتحتاج إلى Blas و Lapack. أوصت وثائق Armadillo بالحصول على الإصدارات المسبقة من http://www.stanford.edu/~vkl/code/libs.html

هناك ملفات .lib و .dll هناك. المشكلة الوحيدة هي أنني لا أعرف كيفية الحصول على Visual Studio (Express Edition 2008) للتعرف على هذه الملفات. أحاول نسخها إلى Visual C ++ تشمل الدلائل وليبر C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ و C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\lib\, ، لكن يبدو أنه لا يفعل أي شيء لأنني عندما أحاول تجميع برنامجي ، أحصل على الكثير من الأخطاء "الرمز الخارجي الذي لم يتم حله" التي تقول إنها لا تستطيع العثور على وظائف اللفاك.

تعديل:

فيما يلي رسائل الخطأ:

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"، و "ThreeCell3DXT"هل الفصول في الكود الخاص بي. أيضًا في ملفات Lapack و BLAS أعلاه ، هناك". EXP Files " - ما هي تلك التي لها علاقة بالمشكلة؟

هل كانت مفيدة؟

المحلول

لقد اكتشفت إجابة مشكلتي. كانت المشكلة أنني كنت أعلم أنه كان علي أن أضع الدليل الذي يحتوي على ملف Lapack .lib في قائمة أدلة المكتبة (الأدوات -> الخيارات -> المشاريع والحلول -> VC ++ أدلة -> ملفات المكتبة) ولكن نسيت أيضًا أن عليّ أن أكون كذلك إلى ذلك أضفه إلى "التبعيات الإضافية" ضمن خصائص المشروع -> (اسم المشروع) -> رابط -> إدخال.

نصائح أخرى

واجهت نفس المشكلة ، لكنني حللتها على النحو التالي:

  1. قم بتنزيل واستخراج Lapack (Lib+DLL) و Blass (Lib+DLL) من موقع Victor ،
  2. أضف مسارات Lapack و Blass إلى أدلة بحث Linker على سبيل المثال `Project-> إنشاء خيارات-> أدلة البحث-> الرابط" في الكود :: الكتل ،
  3. أضف lapack_win32.lib إلى إعدادات الارتباط ،
  4. uncomment `#define arma_use_lapack 'في [Armadillo Path] /include/armadillo_bits/config.hpp
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top