基於CMake和MinGW在Windows環境下安裝SEAL庫

基於CMake和MinGW在Windows環境下安裝SEAL庫

(一)下載Microsoft SEAL

爲了方便,在本地磁盤D下新建SEALSourceFile用於保存從官方倉庫下載下來的源文件。
SEALSourceFile
因爲下載速度的原因,這裏選擇碼雲鏡像用於下載。

克隆到本地或者點擊下載ZIP,將文件保存到D:\SEALSourceFile\目錄下。

(二)下載CMake並配置

CMake下載官網選擇對應的二進制安裝文件,注意Windows環境是32位(x86)還是64位(x64):

本人當時使用的是這一版本:

這裏安裝路徑可自由選擇,這裏選擇安裝路徑D:\Program Files\

打開此電腦->屬性配置環境變量:



打開CMD驗證配置:

(三)下載MinGW並配置


編譯器版本滿足要求的可以跳過下載更新,也可以利用集成開發環境自帶的編譯器用以設置環境變量。

下載MinGW-W64 GCC

將其解壓到D:\下

打開此電腦->屬性,設置環境變量。



打開CMD驗證配置情況:

(四)編譯源文件native/src並安裝SEAL庫

在CMake安裝目錄D:\Program Files\CMake\bin中找到cmake-gui.exe並打開。選擇需要編譯的項目的文件夾編譯結果文件的路徑。之後點擊Configure

彈出提示,這裏選擇Yes以自動生成build文件夾。

選擇編譯器爲MinGw


再次點擊Configure設置生成靜態庫類型和安裝位置(這裏建議安裝到系統默認路徑/usr/local或者C:\Program Files\,後面兩個項目的CMake指令能夠找到SEAL庫),再點擊Generate

以管理員身份運行PowerShell

進入自定義的構建工程的目錄:D:\SEALSourceFile\SEAL\native\src\build

PS C:\WINDOWS\system32> cd D:\SEALSourceFile\SEAL\native\src\build



利用工具mingw64下的工具mingw32-make.exe對工程進行構建和安裝。

PS D:\SEALSourceFile\SEAL\native\src\build> mingw32-make
PS D:\SEALSourceFile\SEAL\native\src\build> mingw32-make install


此時已經能在C:\Program Files(x86)\下找到安裝的SEAL靜態庫和頭文件

(五)編譯官方樣例native/examples

本項目需要鏈接第三方庫,該庫的目錄位於D:\mingw64\x86_64-w64-mingw32

首先進入目錄在這裏插入圖片描述
找到並打開CMakeLists.txt,添加命令鏈接第三方庫(第10、11行和第32、33行)。

LINK_LIBRARIES(D:/mingw64/x86_64-w64-mingw32/lib/libbcrypt.a)
LINK_LIBRARIES(D:/mingw64/x86_64-w64-mingw32/lib/libz.a)

target_link_libraries(sealexamples bcrypt)
target_link_libraries(sealexamples z)

接着打開cmake-gui,編譯native/src一樣,新建build文件夾,選擇MinGW編譯。


二次點擊Configure之後點擊Generate

管理員模式運行PowerShell。

進入例子項目的的exampels/build文件夾,編譯生成可執行文件。

PS C:\WINDOWS\system32> cd D:\SEALSourceFile\SEAL\native\examples\build

PS D:\SEALSourceFile\SEAL\native\examples\build> mingw32-make


此時可以在D:\SEALSourceFile\SEAL\native\bin下看到sealexamples.exe

(六)編譯測試文件native/tests

打開D:\SEALSourceFile\SEAL\native\tests下的CMakeLists.txt

添加鏈接庫命令(第10、11行和第39、40行)。

LINK_LIBRARIES(D:/mingw64/x86_64-w64-mingw32/lib/libbcrypt.a)
LINK_LIBRARIES(D:/mingw64/x86_64-w64-mingw32/lib/libz.a)

target_link_libraries(sealtest bcrypt)
target_link_libraries(sealtest z)


之後進入D:\SEALSourceFile\SEAL\native\tests\thirdparty\googletest目錄,下載googletest子模塊

 git submodule update --init


在這裏插入圖片描述
由於網絡原因也可以尋找鏡像下載googletest源文件到該文件夾。

接着打開cmake-gui,這裏的操作和前兩個項目一樣,新建build文件夾,選擇MinGW編譯。

二次點擊Configure之後單擊Generate

最後以管理員模式運行PowerShell,生成可執行文件。

PS C:\WINDOWS\system32> cd D:\SEALSourceFile\SEAL\native\tests\build
PS D:\SEALSourceFile\SEAL\native\tests\build> mingw32-make


此時可以在D:\SEALSourceFile\SEAL\native\bin目錄下找到生成的可執行樣例可執行測試文件。
在這裏插入圖片描述

(七)在IDE上調用靜態庫

一般的集成開發環境都具有圖形化的項目構建選項,除了使用CMake進行組織的項目。

對項目勾選C++17標準或自行添加編譯指令


在鏈接設置中添加對SEAL庫和其他第三方支持庫的鏈接。
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
若項目需要gtest.a庫,可在D:\SEALSourceFile\SEAL\native\tests\build\lib下尋找。

發佈了6 篇原創文章 · 獲贊 18 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章