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

Windows VSCode 配置 Eigen 库 - C++矩阵计算库的配置 - 手把手教程,第1张

文章目录
  • Eigen
    • 简介
    • 下载
    • 解压
    • 建立VSCode工作区
    • 新建main.cpp
    • 文档及源码

class="superseo">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 
#include 

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/607187.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-14
下一篇 2022-04-14

发表评论

登录后才能评论

评论列表(0条)

保存