一、CMake安裝
https://CMake.org/download/ 這里可以下載到對應不同平台的安裝包,這里分為源碼包以及二進制可執行文件兩類。然后根據需要進行下載安裝就好了。
如果只安裝 CMake-Gui 的版本,選擇 cmake-3.20.0-rc2-windows-x86_64 這個版本。 詳細安裝可參考:Qt:在Windows 10安裝CMake項目構建工具
二、CMake生成HelloWorld的VS工程
(一)新建個目錄 HelloWorld,創建 main.cpp,其內容為:
#include <iostream>
using namespace std;
int main() {
cout << "hello world" << endl;
}
(二)再創建 CMakeLists.txt 文件,其內容為:
cmake_minimum_required(VERSION 3.20.0)
project(HelloWorld)
add_executable(HelloWorld main.cpp)
(三)再運行 cmake-gui 軟件,設置源目錄和 build 目錄后,點擊左下角的 Configure,選擇 VS 版本,再一次點擊 Configure 和 Generate,此時 sln 項目和 VS 工程生成完畢。如下圖所示:
三、CMake編譯SuiteSparse
這里選擇編譯suitesparse metis for windows 1.4.0作為學習,庫源碼下載鏈接為:https://github.com/jlblancoc/suitesparse-metis-for-windows/releases
下載安裝好后,運行 cmake-gui 軟件,設置源目錄和 build 目錄后,點擊左下角的 Configure,報錯如下圖所示:
根據報錯信息可得出,LAPACK_DIR 未找到,需要指定 LAPACK 庫的存放位置,如果 LAPACK 庫還未編譯好,則還需要找到 LAPACK 源碼庫先 CMake 編譯好再指定位置。
幸好的是 SuiteSparse 的開發者早已幫我們編譯好了 LAPACK,在 Git 網頁上的 Readme 文檔中給出了上述錯誤的解決辦法,就是:
將 CMake 變量設置 LAPACK_DIR 為suitesparse-metis-for-windows-master/lapack_windows/x64/(或x32對於32位版本)。
我這里是要 32 位的版本,所以我在 CMakeLists.txt 文件中添加了一行(這里用的相對路徑):
set(LAPACK_DIR lapack_windows/x32/)
再次點擊 Configure 則不再報錯,再點擊 Generate 生成 sln 工程等文件。
編譯運行生成 SuiteSparse 的 include 和 lib
在 build 目錄下使用 VS2019 打開 SuiteSparseProject.sln,先選中 INSTALL 項目,右鍵選中生成,生成成功后再選中 ALL_BUILD 項目,右鍵選中重新編譯,即可生成 include 和 lib。大功告成,如下圖所示:
參考:
Win10 + VS2019 編譯安裝 SuiteSparse