zoukankan      html  css  js  c++  java
  • 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


  • 相关阅读:
    549 小程序阶段2:小程序架构和配置
    548 小程序阶段1:邂逅小程序开发
    546 JavaScript的 动态 import 导入
    544 Promise.allSettled,可选链操作符 --> ?.
    543 class类的私有属性
    542 Array.prototype.flat 与 flatMap
    540 Object.fromEntries,trimStart 和 trimEnd
    539 对象的rest、spread 属性
    简单梳理Redux的源码与运行机制
    7个有用的Vue开发技巧
  • 原文地址:https://www.cnblogs.com/linuxAndMcu/p/14456943.html
Copyright © 2011-2022 走看看