天天看點

Window10下 SuperLU安裝(vs2019)

最近在使用SuperLU進行非線性方程求解(Ax=b),由于習慣在windows下的進行代碼開發,是以簡單介紹下SuperLU在vs2019版本的安裝過程。

在vs2019版本安裝的時候老是出錯,這裡分享一些解決方法。

    下載下傳SuperLU,官方網站:https://portal.nersc.gov/project/sparse/superlu/#superlu 

    下載下傳串行版本,放在:F:\superLU\superlu-5.2.2

SuperLU安裝與使用一般可分為兩個步驟:1.生成靜态連結庫,2.在Vs2019中配置使用,下面詳細說明

一. 靜态連結庫生成,需要生成SuperLU.lib和BLAS.lib (很多已經說的很詳細了:https://www.xuebuyuan.com/1707596.html )

     1. 生成SuperLU.lib

         (1) 首先在vs2019下建立工程,命名為SuperLU

         (2) 把 F:\superLU\superlu-5.2.2\SRC 檔案夾下所有檔案拷貝到建立的工程下,然後 項目名稱--右鍵--添加--現有項,添加所有檔案

       (3)項目名稱--右鍵--屬性--配置屬性--配置類型(改為 靜态庫.lib),注意上面的平台改為x64 (平台和版本需要一一對應,這裡選擇Debug和x64)

       (4) 将檔案夾 F:\superLU\superlu-5.2.2\SRC 添加到  屬性->C/C++->正常->附加包含目錄,并點選應用和确定

         (5)  然後點選  生成---生成解決方案,(直接運作也可以,因為是生成靜态庫,沒有入口,運作會出現無法啟動程式...,但依然會生成lib)

          在vs2019下會出現很多錯誤,常見的兩個,  'sprintf': This function or variable may be unsafe ... ,  AA值為初始化...

          解決方案:屬性--C/C++--正常--SDL檢查,設定為否   (vs2010不會有這些問題)

         這樣就生成了SuperLU.lib,路徑在  **\SuperLU\x64\debug 下

   2. 生成BLAS.lib (生成方式與SuperLU.lib相同)

         (1) 首先在vs2019下建立工程,命名為BLAS

         (2) 把 F:\superLU\superlu-5.2.2\CBLAS檔案夾下所有檔案拷貝到建立的工程下,然後 項目名稱--右鍵--添加--現有項,添加所有檔案

       (3)項目名稱--右鍵--屬性--配置屬性--配置類型(改為 靜态庫.lib),注意上面的平台改為x64 (平台和版本需要一一對應)

       (4) 将檔案夾 F:\superLU\superlu-5.2.2\CBLAS 添加到  屬性->C/C++->正常->附加包含目錄,并點選應用和确定

         (5)  然後點選  生成---生成解決方案,遇到問題同上

           這樣就生成了SuperLU.lib,路徑在  **\BLAS\x64\debug 下

二、在Vs2019中配置使用

        (1) 在vs2019下建立工程,命名test,建立a.cpp檔案,這裡測試SuperLU自帶的例子(例子路徑:F:\superLU\superlu-5.2.2\EXAMPLE\superlu.c,将其内容拷貝到a.cpp,平台需對應Debug和x64)

        (2)  右鍵--屬性--C/C++--附加包含目錄(F:\superLU\superlu-5.2.2\SRC), 屬性--C/C++--正常--SDL檢查,設定為否(否則會出現  'sprintf':...  等錯誤)

        (3)  屬性--連結器--正常--附加庫目錄 (**\SuperLU\x64\debug和**\BLAS\x64\debug )

               // 注:怕每次建立工程配置麻煩的,可将x64\debug下的SuperLU.lib和BLAS.lib拷貝到一個單獨檔案夾下,比如我将兩個.lib拷貝到:F\ku\deg64檔案夾下。

               //  也可以直接項目名稱--右鍵--添加--現有項--SuperLU.lib和BLAS.lib

        (4)  屬性--連結器--輸入--附加依賴項--加入SuperLU.lib和BLAS.lib

      (5) 直接運作,Vs2019下出現很多錯誤:例如:const char* 類型的實參與 char*類型的實參不相容....  (Vs2010不會有這些問題)

               解決方案:屬性--C/C++--語言--符合模式 點否    這樣就不會再出錯了。

 步驟(2)截圖

Window10下 SuperLU安裝(vs2019)

步驟(3)截圖

Window10下 SuperLU安裝(vs2019)

步驟(4)截圖

Window10下 SuperLU安裝(vs2019)

步驟(5)截圖

Window10下 SuperLU安裝(vs2019)

繼續閱讀