有时我们在c_cpp_properties.json中的includePath添加了一些库的路径,在函数中仍然无法完成跳转,下面介绍另外两种方式:
1.cmake:配置
按住Ctrl+Shift+P,输入cmake,选择 cmake:配置 选项,cmake扩展会自动加载项目中CmakeLists中的依赖。
2.bear make
GitHub - rizsotto/Bear: Bear is a tool that generates a compilation database for clang tooling.
bear是一个生成编译数据库的工具。
在ubuntu系统中使用指令安装bear工具:
sudo apt-get install bear
查看bear版本:
bear --version
使用以下指令来对工程进行编译,会在工程目录生成compile_commands.json文件:
bear版本 > 2.4 使用:
bear --make -j8
bear版本 < 2.4 使用:
bear make -j8
打开工程.vscode目录下的c_cpp_properties.json文件
如果工程中没有按 ctrl+shift+p 搜索confi选择C/C++:Edit Configurations(JSON)
在configurations空间最后一行添加:
"compileCommands":"${workspaceFolder}/build/compile_commands.json"
到此为止就可以实现vscode中函数的跳转。
如果目录中有类似.hpp 和.cu等文件
查询vscode language identifier ,每一个language mode会指定一个language identifier。我们需要把这个信息告诉vscode。
进入.vscode目录下的settings.json文件,输入:
{
"files.associations": {
"*.cu": "cuda-cpp"
}
}
就可以实现在这类文件中进行函数跳转了。
3. CMAKE_EXPORT_COMPILE_COMMANDS
跟bear make 一样,另外一种生成compile_commands.json文件的方法,只需要在CmakeLists中添加以下指令即可生成compile_commands.json文件。
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)