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。

Ubuntu下vscode添加Eigen库之天坑(vscode对eigen库报错解决)_第1张图片

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

Ubuntu下vscode添加Eigen库之天坑(vscode对eigen库报错解决)_第2张图片

我解决的办法是

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

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

#include

我一下子明白了,好家伙真的根是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

你可能感兴趣的:(SLAM,slam,vscode)