vscode使用clangd开发c++,实现自动补全功能
vscode使用clangd开发c++,实现自动补全功能在vscode中安装clangd插件,如图所示安装插件,Enable插件clangd;如果之前安装过C/C++插件的,需要将Disable插件C/C++在命令行安装Clang-Format$ sudo apt-get install clang-format
·
安装
- 在vscode中安装clangd插件,如图所示安装插件,Enable插件clangd;如果之前安装过C/C++插件的,需要将Disable插件C/C++
- 在命令行安装clang、clangd-10、Clang-Format
$ sudo apt-get install clang
$ sudo apt-get install clangd-10
$ sudo apt-get install clang-format
设置
创建Cmake工程,文件目录如下:
.
├── CMakeLists.txt
└── src
└── main.cpp
文件CmakeLists.txt添加以下内容,将CMAKE_EXPORT_COMPILE_COMMANDS设置为ON:
cmake_minimum_required(VERSION 3.5.1)
project(clangd_test)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
find_package(Eigen3 REQUIRED)
find_package(OpenCV REQUIRED)
include_directories(${EIGEN3_INCLUDE_DIR} ${OpenCV_INCLUDE_DIRS})
add_executable(clangd_test src/main.cpp)
target_link_libraries(clangd_test ${OpenCV_LIBRARIES})
文件main.cpp添加以下内容:
#include <iostream>
#include <Eigen/Dense>
#include "opencv2/core.hpp"
int main(int argc, char** argv) {
printf("Hello, World!\n");
Eigen::MatrixXd mat(2,2);
std::cout << mat << std::endl;
cv::Mat img(2,2,CV_8UC3,cv::Scalar(0,0,255));
std::cout << img << std::endl;
return 0;
}
使用vscode打开该工程,设置clangd。点击左上角菜单栏File->Preferences->Settings,选择Workspace选项卡,在Extensions扩展那里找到clangd,在"Clangd:Arguments"那里点击"Add Item",增加如下三个选项:
"--compile-commands-dir=${workspaceFolder}/build",
"--query-driver=/usr/bin/clang,/usr/bin/c++",
"--header-insertion=never"
设置成功后会在”.vscode/settings.json“看到设置内容
编译测试
使用cmake和make命令编译,然后重启vscode
mkdir -p build
cd build
cmake ..
make
按下键盘的ctrl + 鼠标点击,可以跳转到相应的头文件,数据类型的定义等;
输入"变量名.“或者"指针->”,可以自动补全变量的成员函数和成员变量等;
use clangd in c++
更多推荐
所有评论(0)