在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(等我通了在回来整)不过影响也不大
------------------------------------------------------------------------------------------------------------------------------
这里提示我没有这个库文件,但是我能在终端运行我这个文件显示结果如下:
我解决的办法是
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