| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> windows环境下使用clion引入eigen库并实现一个小demo -> 正文阅读 |
|
[C++知识库]windows环境下使用clion引入eigen库并实现一个小demo |
本文仅作个人记录用,之前未接触过C++,也没有使用过clion和cmake,不喜勿喷。 首先下载clion,mingw并配置相关环境,安装cmake,这部分比较简单,没有遇到什么问题。 接下来新建一个项目,发现Clion已经自动生成了CMakeLists.txt。 在eigen官网下载最新版本的压缩包,window系统下直接下载zip包即可。 光下载下来压缩包直接引用肯定是行不通的,要通过CMakeLists.txt来帮助我们的项目和eigen库联系起来。 想要引入eigen库有两种方法,下面先说最简单的一种。 不写find_package直接把压缩包解压到某个文件夹,比如我直接解压到c盘目录下。 ?直接在CMakeLists.txt添加如下的语句即可
括号内填自己解压的路径,如果不想写两个\\的话可以换成/
试着在cpp中include Eigen并使用
如果可以编译没有报错,说明已经成功了,写一个小Demo测试一下即可。有的时候,Clion可以正常编译运行,但是编辑界面还是爆红提示文件没有找到。 ?这种情况点一下上方工具栏的File->Reload CMake Project,一般来说就正常了,暂时没想到别的解决办法...... ?写find_package的方法这种方式相对就比较繁琐一点了。Eigen这个库其实是可以安装的,打开解压后的文件夹会发现其中有个install文件。 ?使用记事本打开该文件,其中重点内容如下
因为cmake有图形化工具,前两步我就不用命令行了。 先在解压的文件夹下新建一个文件夹(其实位置和名字无关紧要) ? 管理员权限打开图形化工具 ?在这之后管理员权限打开命令行窗口(cmd),cd 到新建的文件夹下。 执行 如下命令
需要注意的是,我的window 11 默认是没有make的,需要先下载安装再使用这个命令,安装的方式有很多种,我这里使用的是这种方式,如果发现下载不了可能要注意上网方式的科学性,或者用其他替代方案。 安装完成之后,注意上面图形化界面那张图的安装地址,可以去检查一下是否出现了对应的文件夹。接下来我们看看Eigen官网是怎么建议我们在cmake项目中使用eigen的:官网 如果你前面的步骤都是按照这篇文章走的,那么后面的部分其实不用看,重点在于CMakeLists.txt的内容怎么调整,这是官网给出的样例:
其中第1,2,4行都是Clion新建项目时就自动生成的,我们重点要关注的就是3,5行,注意把example换成你自己的项目名称(也就是project里面填的),NO_MODULE和版本填不填都不影响结果。Eigen是怎么解释这段内容的呢?
那么现在唯一的问题就是,find_package到底是怎么知道Eigen安装的路径的?通过查看CMAKE官网对于find_package命令的文档说明,在Config Mode Search Procedu这一栏中,可以看到第7点的解释
也就是说,根据平台的不同,find_package会默认地去查找一些固定的路径。知道这一点之后,再打开上文中对于CMAKE_SYSTEM_PREFIX_PATH的介绍,一切就很清楚了。 ?这就是为什么很多教程里面写的是/usr/local,因为默认的环境是不一样的。比如这个教程,但是它似乎是第一第二种方法的混合,实际上即便按照这个教程把里面find_package的部分去掉,还是能够成功引入eigen的,因为它实际上使用的是第一种方法。下面给出一个完整可行的txt例子,注意大小写是要区分的:
?写一个小demo测试一下能不能成功使用
输出结果看起来没有问题 ?一切顺利。 |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 11:48:51- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |