如何在Visual Studio Code中配置Eigen C++库及解决头文件识别问题
Eigen库VS Code配置常见问题解答
问题1:#include <eigen3/Eigen/Dense>无法跳转到定义是否正常
属于非正常现象,本质是VS Code的C/C++扩展的语法解析模块没有找到Eigen头文件的存放路径,无法关联到对应头文件,和Eigen本身无关。
问题2:是否必须把Eigen放到系统默认include目录、是否需要配置环境变量
不需要把Eigen放入系统默认include目录,该操作只是可选方案之一,也不需要额外配置系统环境变量。哪怕你把Eigen放到任意本地目录,只要给VS Code配置对应头文件搜索路径,就能正常识别跳转。
新手友好的完整配置步骤
- 第一步确认Eigen解压路径:找到你解压后的Eigen文件夹,确认层级结构:如果你写的引入语句是
#include <eigen3/Eigen/Dense>,就找到包含eigen3文件夹的上一级目录,比如你解压到D:\tools\eigen-3.4.0,目录里有eigen3文件夹,eigen3里有Eigen文件夹,Eigen里有Dense文件,那你要用到的路径就是D:/tools/eigen-3.4.0 - 打开你存放C++代码的文件夹(必须用VS Code打开文件夹,不能单独打开单个cpp文件,否则配置不生效),找到根目录下的
.vscode隐藏文件夹,没有就手动新建一个 - 在
.vscode文件夹中新建c_cpp_properties.json文件,如果已经存在就直接打开编辑 - 把以下配置写入文件,注意替换
includePath中第二行的路径为你自己的Eigen路径:
{ "configurations": [ { "name": "Win32", "includePath": [ "${workspaceFolder}/**", "替换为你自己的Eigen路径,示例:D:/tools/eigen-3.4.0" ], "compilerPath": "替换为你的C++编译器路径,GCC示例:C:/mingw64/bin/g++.exe", "cStandard": "c17", "cppStandard": "c++17", "intelliSenseMode": "windows-gcc-x64" } ], "version": 4 }
- 保存文件后重启VS Code,此时再右键点击
Dense就能正常跳转到定义 - 如果需要编译运行代码,还要在编译参数中加头文件路径,用GCC编译的话,命令示例为
g++ main.cpp -I D:/tools/eigen-3.4.0 -o main.exe
踩坑提示:路径分隔符请用正斜杠
/或者双反斜杠\\,不要用单反斜杠,否则路径会识别失败。如果你的引入语句写的是#include <Eigen/Dense>,就把includePath配置到包含Eigen文件夹的上一级目录即可。
内容的提问来源于stack exchange,提问作者N. Ope
相关产品推荐
相关产品推荐

