Windows下使用CMake编译SuiteSparse成VS工程
一、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
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
· PowerShell开发游戏 · 打蜜蜂
· 凌晨三点救火实录:Java内存泄漏的七个神坑,你至少踩过三个!