Ubuntu下vscode添加Eigen库之天坑(vscode对eigen库报错解决)

学习SLAM编程小笔记,如有错误,请大佬指点

在slam中最重要的就是Eigen库,在高博的书上使用的是KDdevelop,我对vscode情有独钟想要在上面学习——死磕就完事了。如果遇到vscode对eigen库报错这个问题请直接拉到下面看。

一、现在终端mkdir (文件夹名字),然后cd (文件夹名字) ,然后code . 打开vscode。

二、自己创建CMakeLists.txt,然后编写如下

cmake_minimum_required(VERSION 3.16.3)
project(EIGEN_DEMO)

set(CMAKE_BUILD_TYPE "Debug")   //这一块可忽略

add_executable(demo01 demo01.cpp)

include_directories("/usr/include/eigen3")   //这个也可以忽略,好像在KDdevelop里有用(我胡说的,我也不知道)

既然是笔记,我就把我学的也介绍一下,便于后面的学习

cmake_minimum_required(VERSION 3.16.3)//最低版本

project(SLAME_DEMO)  //项目名称

add_executable(demo01 demo01.cpp)   执行文件链接   (执行的名称 源码)
add_executable(demo02 demo02.cpp)

#add_library(hello hello_lib.cpp)   #静态库每次调用都会生成一个副本.a
add_library(hello SHARED hello_lib.cpp)  #共享库只有一个副本.os   

target_link_libraries(demo02 hello)  #把hello连接到demo02,demo02就能使用hello库

三、创建c_cpp_properties.json,这里是链接库的关键吧

首先,按下快捷键Ctrl + Shift + P,输入edit configuration,选择C/Cpp: Edit Configurations(JSON),此时会在工程的配置目录.vscode下生成一个配置文件:c_cpp_properties.json

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [      
                "${workspaceFolder}/**",
                "/usr/include/**",
                "/usr/local/include/**",
                "/usr/include/eigen3"       //添加库路径
            ],
            "defines": [],
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "gnu17",
            "cppStandard": "gnu++14",
            "intelliSenseMode": "linux-gcc-x64"
        }
    ],
    "version": 4
}

基本上:

                 "/usr/include/**",
                "/usr/local/include/**",
                "/usr/include/eigen3"    链接了大部分库吧

四、在终端文件的目录下cmake .一下 然后make就差不多了。

注意:要在你的文件夹下按一下ctrl+H,把隐藏文件显示出来,我刚刚创建是把代码都存在了.vscode下,就是vscode它默认存文件的地方。(可以找到CMakeLists.txt文件请跳过)

cmake .后会生成 CMakeFiles 、Makefile、CMakeCache.txt\cmake_install.cmake四个文件。

最后make一下就基本完成了。

对了,我这样创建好像没有launch.json和task.json(等我通了在回来整)不过影响也不大

------------------------------------------------------------------------------------------------------------------------------

我遇到了一个非常无奈的事

我显示的问题是:vscode用eigen库会报错但是我在终端make却能正常输出,在vscode中不能build。

这里提示我没有这个库文件,但是我能在终端运行我这个文件显示结果如下:

我解决的办法是

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

 我解决了后一个群里大佬和我说这样加头文件

#include<eigen3/Eigen/Core>

我一下子明白了,好家伙真的根是eigen3。

感谢:https://blog.csdn.net/l1216766050/article/details/81431628?utm_term=vscode%E4%BD%BF%E7%94%A8eigen&utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~sobaiduweb~default-0-81431628&spm=3001.4430

  • 24
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
要在Ubuntu下使用VSCodeEigen一起进行开发,需要按照以下步骤进行设置: 1. 安装VSCode:可以在Ubuntu上使用以下命令进行安装: ```shell sudo apt update sudo apt install code ``` 2. 启动VSCode:可以通过在终端中运行 `code` 命令来启动。 3. 在VSCode中安装C++扩展:点击左侧面板中的“扩展”图标,搜索并安装 "C++" 扩展。 4. 创建C++项目文件夹:在终端中,使用以下命令创建一个新的文件夹,并进入该文件夹: ```shell mkdir myproject cd myproject ``` 5. 初始化C++项目:在终端中运行以下命令以初始化C++项目: ```shell code . ``` 上述命令将打开VSCode并将当前文件夹作为工作区载入。 6. 安装Eigen:可以通过以下命令安装Eigen: ```shell sudo apt install libeigen3-dev ``` 7. 配置编译器:在VSCode的工作区中,创建一个名为 `.vscode` 的文件夹,并在其中创建一个名为 `tasks.json` 的文件。在 `tasks.json` 文件中添加以下内容: ```json { "version": "2.0.0", "tasks": [ { "label": "build", "type": "shell", "command": "g++", "args": [ "-Wall", "-std=c++11", "-I/usr/include/eigen3", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}" ], "group": { "kind": "build", "isDefault": true } } ] } ``` 上述配置将使用 `g++` 编译器编译当前打开的文件,并将输出文件保存在与源文件相同的目录中。 8. 构建和运行:按下 `Ctrl+Shift+B` 快捷键,选择 “build” 任务来构建当前的C++文件。构建成功后,您可以在终端中运行生成的可执行文件,例如: ```shell ./myprogram ``` 现在,您可以在VSCode中使用Eigen进行C++开发了。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值