[英]Linking OpenBLAS with Qt Creator project
我正在使用Qt Creator進行開發。 我想使用Armadillo線性代數庫。 因此,我在pro文件中使用了以下代碼:
INCLUDEPATH += C:\armadillo-7.950.1\include
LIBS += \
-LC:\armadillo-7.950.1\examples\lib_win64 \
-llapack_win64_MT \
-lblas_win64_MT
一切都很好,項目已正確編譯和鏈接。 下一個任務是用OpenBLAS替換LAPACK和BLAS。 因此,pro文件更改如下:
INCLUDEPATH += C:\armadillo-7.950.1\include \
C:\OpenBLAS-v0.2.19-Win64-int32\include
LIBS += \
-LC:\OpenBLAS-v0.2.19-Win64-int32\lib \
-llibopenblas
現在,我收到錯誤:LNK1104:無法打開文件'libopenblas.lib'。 我已經下載了OpenBLAS的Windows二進制文件。 如圖所示,已安裝的文件夾結構: 已安裝的OpenBLAS文件夾
請讓我知道怎么了?
謝謝。
此問題有兩個原因:
解:
選擇一個二進制文件-win 64或win32並下載它。
根據Yuriy的建議將libopenblas.dll.a重命名為libopenblas.lib
從https://sourceforge.net/projects/openblas/files/v0.2.14/下載,所需的丟失DLL再次捆綁在奇怪的zip文件“ mingw64_dll”或“ mingw32_dll”下,具體取決於您在步驟1中下載的二進制類型。這些zip文件包含“ libgcc_s_seh-1.dll”,“ libgfortran-3.dll”和“ libquadmath-0.dll”
像我對您的項目所做的那樣添加include和lib,並根據下載的二進制文件(即win64或X86)使用正確的目標進行構建
從OpenBLAS二進制文件的bin文件夾復制libopenblas.dll,然后從“ mingw64_dll”或“ mingw32_dll”中復制“ libgcc_s_seh-1.dll”,“ libgfortran-3.dll”,“ libquadmath-0.dll”,具體取決於二進制類型以進行調試或釋放exe所在的目錄。
運行程序,一切順利。
如果要避免再次復制,請為包含這些DLL的路徑設置所需的系統環境變量
我不熟悉OpenBLAS,但您的配置看起來正確。 在Windows上,或者至少在MSVC上,除了用於運行時的DLL文件之外,還需要鏈接到.lib文件。 而是看起來好像OpenBLAS安裝了一個神秘的.dll.a文件。 聽起來應該是同一回事: https : //github.com/xianyi/OpenBLAS/wiki/How-to-use-OpenBLAS-in-Microsoft-Visual-Studio可能重命名會達到目的,但您可能需要從源重建以獲取文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.