Eigen安装+vscode配置

1.安装方法

命令安装(不建议):sudo apt-get install libeigen3-dev

建议使用源码方式:
卸载旧版:

sudo rm -rf /usr/include/eigen3
sudo rm -rf /usr/lib/cmake/eigen3
sudo rm -rf /usr/local/include/eigen3
sudo rm -rf /usr/local/lib/cmake/eigen3
sudo rm -rf /usr/share/doc/libeigen3-dev 
sudo rm -rf /usr/local/share/pkgconfig/eigen3.pc /usr/share/pkgconfig/eigen3.pc /var/lib/dpkg/info/libeigen3-dev.list /var/lib/dpkg/info/libeigen3-dev.md5sums
sudo rm -rf /usr/local/lib/pkgconfig/eigen3.pc
sudo rm -rf /usr/local/share/eigen3

pkg-config --modversion eigen3 发现为空 卸载完成
下载源码,见第2节

完成安装流程 :

cd eigen-3.4.0
mkdir build
cd build
cmake ..
sudo make install
sudo cp -r /usr/local/include/eigen3 /usr/include 

检测当前版本
pkg-config --modversion eigen3

2.下载源码

地址:
https://eigen.tuxfamily.org/index.php?title=Main_Page
在这里插入图片描述

linux 下载tar.gz文件
window 下载 zip文件。解压到本地,如下D盘:
添加环境变量 Path:D:\eigen-3.4.0\Eigen

其实可以不用编译,直接加入个人项目内直接使用即可(linux 和 window 均是), 但要在工程里注意配置CMakeLists.txt

3.vscode配置使用(linux环境)

c_cpp_properties.json —— 解决编辑代码显示不到连接问题,以及 #include <Eigen/Eigen> 失败问题

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**",
                "/usr/include/eigen3/**"
            ],
            "defines": [],
            "compilerPath": "/usr/bin/g++",
            "cStandard": "c11",
            "cppStandard": "c++11",
            "intelliSenseMode": "linux-gcc-x64",
            "configurationProvider": "ms-vscode.cmake-tools"
        }
    ],
    "version": 4
}

task.json —— F5执行代码

{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++ 生成活动文件",
            "command": "/usr/bin/g++",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/bin/${fileBasenameNoExtension}",
                "-std=c++11",
                "-pthread",
                "-I", "/usr/include/eigen3"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": "build",
            "detail": "编译器: /usr/bin/g++"
        },
    ],
    "version": "2.0.0"
}

代码文件结构:

.
├── bin  # vsode 点击F5 自动生成可执行文件所在文件夹
├── build
├── CMakeLists.txt
├── test.cpp
//test.cpp
#include <Eigen/Core>
#include <Eigen/Eigen>
#include <iostream>

int main(int argc, char *argv[])
{

    std::cout << " -----test eigen3 ------" << std::endl;
    Eigen::Vector3d P;
    P << 1.1, 2.2, 3.666;
    std::cout << P.transpose() << std::endl;
    return 0;
}

CMakeLists.txt

cmake_minimum_required(VERSION 3.10)
project(test_eigen3)

find_package(Eigen3 REQUIRED)
message("===|>- EIGEN3_INCLUDE_DIR= "  ${EIGEN3_INCLUDE_DIR})
include_directories(${EIGEN3_INCLUDE_DIR})

add_executable(test ${CMAKE_CURRENT_SOURCE_DIR}/test.cpp)

运行: F5 执行 或cmake执行。 mkdir build && cd build && cmake … && make -j4, ./test
如果find_package eigen3包失败, 则手动set ${EIGEN3_INCLUDE_DIR} 路径,或 include_directories eigen包所在路径。

4.vscode配置使用(win环境)

本文这里使用的编译是mingw64。
.vscode/c_cpp_properties.json

{
    "configurations": [
        {
            "name": "g++",
            "includePath": [
                "${workspaceFolder}/**",
                "D:/eigen-3.4.0/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "windowsSdkVersion": "10.0.19041.0",
            "cStandard": "c11",
            "cppStandard": "c++14",
            "intelliSenseMode": "linux-gcc-x64"
        }
    ],
    "version": 4
}

.vscode/task.json

{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++.exe 生成活动文件",
            "command": "D:\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin\\g++.exe",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\bin\\${fileBasenameNoExtension}.exe",
                "-I", "D:/eigen-3.4.0"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "调试器生成的任务。"
        }
    ],
    "version": "2.0.0"
}

代码示例参考第3节。 编译使用命令

cd build
cmake -G "MinGW Makefiles" ..
mingw32-make.exe

5.vscode可能发生的链接问题

cd /usr/include
sudo ln -sf eigen3/Eigen Eigen //就是eigen3/Eigen指向Eigen
sudo ln -sf eigen3/unsupported unsupported

  • 8
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值