草庐IT

Windows VsCode 配置 Eigen 库 - C++矩阵计算库的配置 - 手把手教程

Tisfy 2024-01-22 原文

文章目录

Eigen

简介

Eigen是一个用来进行矩阵处理的C++库,除了 C++ 标准库之外,Eigen 不需要其他任何依赖项。

下载

官网 https://eigen.tuxfamily.org

直接点击最新版(当前是3.4.0)对应的zip文件下载即可。

解压

解压后文件目录如下:

.
└─eigen-3.4.0
    ├─.gitlab
    │  ├─issue_templates
    │  └─merge_request_templates
    ├─bench
    │  ├─btl
    │  │  ├─actions
    │  │  ├─cmake
    │  │  ├─data
    │  │  ├─generic_bench
    │  │  │  ├─init
    │  │  │  ├─static
    │  │  │  ├─timers
    │  │  │  └─utils
    │  │  └─libs
    │  │      ├─BLAS
    │  │      ├─blaze
    │  │      ├─blitz
    │  │      ├─eigen2
    │  │      ├─eigen3
    │  │      ├─gmm
    │  │      ├─mtl4
    │  │      ├─STL
    │  │      ├─tensors
    │  │      ├─tvmet
    │  │      └─ublas
    │  ├─perf_monitoring
    │  │  └─resources
    │  ├─spbench
    │  └─tensors
    ├─blas
    │  ├─f2c
    │  ├─fortran
    │  └─testing
    ├─ci
    ├─cmake
    ├─debug
    │  ├─gdb
    │  └─msvc
    ├─demos
    │  ├─mandelbrot
    │  ├─mix_eigen_and_c
    │  └─opengl
    ├─doc
    │  ├─examples
    │  ├─snippets
    │  └─special_examples
    ├─Eigen
    │  └─src
    │      ├─Cholesky
    │      ├─CholmodSupport
    │      ├─Core
    │      │  ├─arch
    │      │  │  ├─AltiVec
    │      │  │  ├─AVX
    │      │  │  ├─AVX512
    │      │  │  ├─CUDA
    │      │  │  ├─Default
    │      │  │  ├─GPU
    │      │  │  ├─HIP
    │      │  │  │  └─hcc
    │      │  │  ├─MSA
    │      │  │  ├─NEON
    │      │  │  ├─SSE
    │      │  │  ├─SVE
    │      │  │  ├─SYCL
    │      │  │  └─ZVector
    │      │  ├─functors
    │      │  ├─products
    │      │  └─util
    │      ├─Eigenvalues
    │      ├─Geometry
    │      │  └─arch
    │      ├─Householder
    │      ├─IterativeLinearSolvers
    │      ├─Jacobi
    │      ├─KLUSupport
    │      ├─LU
    │      │  └─arch
    │      ├─MetisSupport
    │      ├─misc
    │      ├─OrderingMethods
    │      ├─PardisoSupport
    │      ├─PaStiXSupport
    │      ├─plugins
    │      ├─QR
    │      ├─SparseCholesky
    │      ├─SparseCore
    │      ├─SparseLU
    │      ├─SparseQR
    │      ├─SPQRSupport
    │      ├─StlSupport
    │      ├─SuperLUSupport
    │      ├─SVD
    │      └─UmfPackSupport
    ├─failtest
    ├─lapack
    ├─scripts
    ├─test
    └─unsupported
        ├─bench
        ├─doc
        │  ├─examples
        │  │  └─SYCL
        │  └─snippets
        ├─Eigen
        │  ├─CXX11
        │  │  └─src
        │  │      ├─Tensor
        │  │      ├─TensorSymmetry
        │  │      │  └─util
        │  │      ├─ThreadPool
        │  │      └─util
        │  └─src
        │      ├─AutoDiff
        │      ├─BVH
        │      ├─Eigenvalues
        │      ├─EulerAngles
        │      ├─FFT
        │      ├─IterativeSolvers
        │      ├─KroneckerProduct
        │      ├─LevenbergMarquardt
        │      ├─MatrixFunctions
        │      ├─MoreVectorization
        │      ├─NonLinearOptimization
        │      ├─NumericalDiff
        │      ├─Polynomials
        │      ├─Skyline
        │      ├─SparseExtra
        │      ├─SpecialFunctions
        │      │  └─arch
        │      │      ├─AVX
        │      │      ├─AVX512
        │      │      ├─GPU
        │      │      └─NEON
        │      └─Splines
        └─test

其中Eigen就是存放要Include的头文件的地方。

建立VSCode工作区

  1. 最好新建一个文件夹专门用来写Eigne的项目。

  1. 放入之前VsCode用来写C++项目的.vscode

  1. 将解压出来的Eigen文件夹拷贝到这个新建的文件夹中

  1. 编辑.vscode/tasks.json

tasks.json中添加两个命令(分别是-I.

其中其他配置每个人电脑可能不同。

{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++.exe 生成活动文件",
            "command": "F:\\OtherApps\\Program\\MinGW\\bin\\g++.exe",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe",
                "-I",
                "."
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "调试器生成的任务。"
        }
    ],
    "version": "2.0.0"
}

新建main.cpp

新建一个main.cpp,就可以愉快地编码了。

#include <iostream>
#include <Eigen/Dense>

using Eigen::MatrixXd;
using Eigen::VectorXd;

int main() {
    MatrixXd m = MatrixXd::Random(3, 3);
    m = (m + MatrixXd::Constant(3, 3, 1.2)) * 50;
    std::cout << "m =" << std::endl << m << std::endl;
    VectorXd v(3);
    v << 1, 2, 3;
    std::cout << "m * v =" << std::endl << m * v << std::endl;
    system("pause");
    return 0;
}

F5运行即可看到结果。

m =
10.1251 90.8741 45.0291
66.3585 68.5009 99.5962
29.3304 57.9873  92.284
m * v =
326.961
502.149
422.157
请按任意键继续. . .

说明坏境配置成功。

文档及源码

  • 源码下载地址

    这个下载很快

  • 文档下载地址

    👆这个下载比较慢。

    如果想在CSDN上下载也可以试试👇
    https://download.csdn.net/download/Tisfy/85115453

    注意:如果能够访问官网就没有什么下载它的必要
    使用方法:解压后双击index.html即可访问主页。
    官网源码下载地址https://eigen.tuxfamily.org/dox/eigen-doc.tgz,下载较慢,下载下来格式为.tgz。
    如果能从官网下载并且能够解压.tgz格式的文件就也不需要下载此内容了。

原创不易,转载请附上原文链接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/124121454

有关Windows VsCode 配置 Eigen 库 - C++矩阵计算库的配置 - 手把手教程的更多相关文章

  1. ruby-on-rails - 独立 ruby​​ 脚本的配置文件 - 2

    我有一个在Linux服务器上运行的ruby​​脚本。它不使用rails或任何东西。它基本上是一个命令行ruby​​脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg

  2. Ruby Sinatra 配置用于生产和开发 - 2

    我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm

  3. 旋转矩阵的几何意义 - 2

    点向量坐标矩阵的几何意义介绍旋转矩阵的几何含义之前,先介绍一下点向量坐标矩阵的几何含义点:在一维空间下就是一个标量,如同一条直线上,以任意某一个位置为0点,以一定的尺度间隔为1,2,3...,相反方向为-1,-2,-3...;如此就形成了一维坐标系,这时候任何一个点都可以用一个数值表示,如点p1=5,即即从原点出发沿着x轴正方向移动5个尺度;点p2=-3,负方向移动3个尺度;     在一维坐标系上过原点做垂直于一维坐标系的直线,则形成了二维坐标系,此时描述一个点需要两个数值来表示点p3=(3,2),即从原点出发沿着x轴正方向移动3个尺度,在此基础上沿着y轴正方向移动两个尺度的位置就是点p3。

  4. Vscode+Cmake配置并运行opencv环境(Windows和Ubuntu大同小异) - 2

    之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m

  5. Unity 3D 制作开关门动画,旋转门制作,推拉门制作,门把手动画制作 - 2

    Unity自动旋转动画1.开门需要门把手先动,门再动2.关门需要门先动,门把手再动3.中途播放过程中不可以再次进行操作觉得太复杂?查看我的文章开关门简易进阶版效果:如果这个门可以直接打开的话,就不需要放置"门把手"如果门把手还有钥匙需要旋转,那就可以把钥匙放在门把手的"门把手",理论上是可以无限套娃的可调整参数有:角度,反向,轴向,速度运行时点击Test进行测试自己写的代码比较垃圾,命名与结构比较拉,高手轻点喷,新手有类似的需求可以拿去做参考上代码usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;u

  6. postman接口测试工具-基础使用教程 - 2

    1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,

  7. 在VMware16虚拟机安装Ubuntu详细教程 - 2

    在VMware16.2.4安装Ubuntu一、安装VMware1.打开VMwareWorkstationPro官网,点击即可进入。2.进入后向下滑动找到Workstation16ProforWindows,点击立即下载。3.下载完成,文件大小615MB,如下图:4.鼠标右击,以管理员身份运行。5.点击下一步6.勾选条款,点击下一步7.先勾选,再点击下一步8.去掉勾选,点击下一步9.点击下一步10.点击安装11.点击许可证12.在百度上搜索VM16许可证,复制填入,然后点击输入即可,亲测有效。13.点击完成14.重启系统,点击是15.双击VMwareWorkstationPro图标,进入虚拟机主

  8. 神州数码无线产品(AC+AP)配置 - 2

    注意:本文主要掌握DCN自研无线产品的基本配置方法和注意事项,能够进行一般的项目实施、调试与运维AP基本配置命令AP登录用户名和密码均为:adminAP默认IP地址为:192.168.1.10AP默认情况下DHCP开启AP静态地址配置:setmanagementstatic-ip192.168.10.1AP开启/关闭DHCP功能:setmanagementdhcp-statusup/downAP设置默认网关:setstatic-ip-routegeteway192.168.10.254查看AP基本信息:getsystemgetmanagementgetmanaged-apgetrouteAP配

  9. hadoop安装之保姆级教程(二)之YARN的配置 - 2

    1.1.1 YARN的介绍 为克服Hadoop1.0中HDFS和MapReduce存在的各种问题⽽提出的,针对Hadoop1.0中的MapReduce在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架YARN. ApacheYARN(YetanotherResourceNegotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于⼀个分布式的操作系统平台,⽽MapReduce等计算程序则相当于运⾏于操作系统之上的应⽤程序。 YARN被引⼊Hadoop2,最初是为了改善MapReduce的实现,但是因为具有⾜够的通⽤性,同样可以⽀持其他的分布式计算模

  10. Ruby 默认将 IRB 配置为 Pretty_Inspect - 2

    我是ruby​​的新手,正在配置IRB。我喜欢pretty-print(需要'pp'),但总是输入pp来漂亮地打印它似乎很麻烦。我想做的是默认情况下让它漂亮地打印出来,所以如果我有一个var,比如说,'myvar',然后键入myvar,它会自动调用pretty_inspect而不是常规检查。我从哪里开始?理想情况下,我将能够向我的.irbrc文件添加一个自动调用的方法。有什么想法吗?谢谢! 最佳答案 irb中默认pretty-print对象正是hirb被迫去做。Theseposts解释hirb如何将几乎所有内容转换为ascii表。虽

随机推荐