Windows下使用CMake编译SuiteSparse成VS工程

摘要:
详细安装可参考:Qt:在Windows10安装CMake项目构建工具二、CMake生成HelloWorld的VS工程(一)新建个目录HelloWorld,创建main.cpp,其内容为:#includeusingnamespacestd;intmain(){cout˂˂"helloworld"˂˂endl;}(二)再创建CMakeLists.txt文件,其内容为:cmake_minimum_requiredprojectadd_executable(三)再运行cmake-gui软件,设置源目录和build目录后,点击左下角的Configure,选择VS版本,再一次点击Configure和Generate,此时sln项目和VS工程生成完毕。我这里是要32位的版本,所以我在CMakeLists.txt文件中添加了一行:set再次点击Configure则不再报错,再点击Generate生成sln工程等文件。大功告成,如下图所示:参考:Win10+VS2019编译安装SuiteSparse

一、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


免责声明:文章转载自《Windows下使用CMake编译SuiteSparse成VS工程》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Python 区分IPv4与IPv6读文本文件下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Cmake实战指南

0 综述 我觉的Cmake比较核心的一些东西就是 怎么去组织一个项目的编译框架 最终输出目标有哪些(可执行程序,动态库,静态库等等) 怎么为指定的输出目标指定编译参数(需要哪些源文件,需要哪些编译参数) 怎么为指定的输出目标指定链接参数(需要哪些外部库,需要哪些链接参数) 如果存在多个独立输出目标是否有执行先后顺序(比如项目有自动配置工具,用来自动生...

现代软件构建系统的使用 CMake简介

现代软件构建系统的使用 CMake简介 - 程序即人生 - 博客频道 - CSDN.NET 现代软件构建系统的使用 CMake简介 分类:【Linux】2009-10-29 15:393113人阅读评论(1)收藏举报 目录(?)[+] 现代软件构建系统的使用 CMake简介 前言CMake的主要优点: CMake安装 没有用CMake之前 C...

Android Studio的串口通讯开发

基于android-serialport-api实现 前言RS232标准接口UARTRS232与UART转接下载 NDK 和构建工具创建支持 C/C++ 的新项目编译C/C++代码串口通讯原理关于校验位HexString与Bytes的转换参考 前言 软件代码写久了,总会对嵌入式开发感兴趣,因为软件的东西写来写去看不见摸不着,而嵌入式硬件开发,可以捣...

制作MySQL RPM安装包Spec

适用环境: 数据库版本:MySQL 5.7.29 操作系统:CentOS 7 制作思路: 将数据库初始化和配置工作放到安装脚本中方便定制: 1、打包MySQL应用目录 2、不自动生成配置文件 3、不自动生成数据目录 4、不自动初始化数据 制作步骤: 1、安装依赖包 yum -y install gperf zlib-devel time ncurses-...

CMake 设置Target输出目录和后缀名

博客参考:https://www.cnblogs.com/tangxin-blog/p/8283460.html SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/../bin) 上面的语句能设置可执行文件的输出目录 在Win + VS环境下,会自动在你所设置的目录后面扩展一层 <CONFIG> ...

Windos Linux(CentOS 7) opencv安装 tar.gz文件安装

前提: 版本为4.4.0 下载地址:https://github.com/opencv/opencv/releases windows 下载.exe 安装之后 复制2个文件: buildjavaopencv-440.jar, buildjavax64opencv_java440.dll 调用列子如下: //windows 版本...