簡體   English   中英

將OpenBLAS與Qt Creator項目鏈接

[英]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文件夾

請讓我知道怎么了?

謝謝。

此問題有兩個原因:

  1. 奇怪的.lib文件命名為libopenblas.dll.a,即使該軟件包被稱為Windows Binary。
  2. 不完整的二進制程序包----它不包含所有必需的dll

解:

  1. 選擇一個二進制文件-win 64或win32並下載它。

  2. 根據Yuriy的建議將libopenblas.dll.a重命名為libopenblas.lib

  3. 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”

  4. 像我對您的項目所做的那樣添加include和lib,並根據下載的二進制文件(即win64或X86)使用正確的目標進行構建

  5. 從OpenBLAS二進制文件的bin文件夾復制libopenblas.dll,然后從“ mingw64_dll”或“ mingw32_dll”中復制“ libgcc_s_seh-1.dll”,“ libgfortran-3.dll”,“ libquadmath-0.dll”,具體取決於二進制類型以進行調試或釋放exe所在的目錄。

    1. 運行程序,一切順利。

    2. 如果要避免再次復制,請為包含這些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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM