Windows下使用CMake編譯SuiteSparse成VS工程


一、CMake安裝

https://CMake.org/download/ 這里可以下載到對應不同平台的安裝包,這里分為源碼包以及二進制可執行文件兩類。然后根據需要進行下載安裝就好了。

img


如果只安裝 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_HelloWorld_A.png


三、CMake編譯SuiteSparse

這里選擇編譯suitesparse metis for windows 1.4.0作為學習,庫源碼下載鏈接為:https://github.com/jlblancoc/suitesparse-metis-for-windows/releases

下載安裝好后,運行 cmake-gui 軟件,設置源目錄和 build 目錄后,點擊左下角的 Configure,報錯如下圖所示:

CMake_SuiteSparse_A.png


根據報錯信息可得出,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。大功告成,如下圖所示:

CMake_SuiteSparse_B.png


參考:

Win10 + VS2019 編譯安裝 SuiteSparse



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM