带有 C++ header 的 VSCode 智能感知
编程 65
我搜索过这个,但我找不到任何东西。如果是骗局,我会毫无问题地关闭我的问题。我在VSCODE中有一个c_cpp_properties.json配置文件
{
"configurations": [
{
"name": "Mac",
"includePath": [
"/usr/include",
"/usr/local/include",
"${workspaceRoot}"
],
"defines": [],
"intelliSenseMode": "clang-x64",
"browse": {
"path": [
"/usr/include",
"/usr/local/include",
"${workspaceRoot}"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
}
},
{
"name": "Linux",
"includePath": [
"/usr/include/x86_64-linux-gnu/c++/5",
"/usr/include/c++/5",
"/usr/local/include",
"/usr/include/x86_64-linux-gnu",
"/usr/include",
"${workspaceRoot}"
],
"defines": [],
"intelliSenseMode": "clang-x64",
"browse": {
"path": [
"/usr/include/x86_64-linux-gnu/c++/5",
"/usr/include/c++/5",
"/usr/local/include",
"/usr/include/x86_64-linux-gnu",
"/usr/include",
"${workspaceRoot}"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
}
},
{
"name": "Win32",
"includePath": [
"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include",
"${workspaceRoot}"
],
"defines": [
"_DEBUG",
"UNICODE"
],
"intelliSenseMode": "msvc-x64",
"browse": {
"path": [
"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include/*",
"${workspaceRoot}"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
}
}
],
"version": 2
}
我正在 Ubuntu 16.04 中开发。我面临的问题是,当我输入 .cpp 文件时,标题的智能感知不起作用。
MyFooClass.h
#pragma once
#include <cstddef>
#include <fstream>
#include <string>
class MyFooClass
{
private:
//My private fields
public:
MyFooClass();
virtual ~MyFooClass();
bool MyFooFunction();
};
当我使用 MyFooClass.cpp 实现时
#include "MyFooClass.h"
Intellisense 不适用于 .h 中的函数和数据 在我看来,这应该在我的配置中默认启用,但我不知道是否必须添加一些新内容。非常感谢。
-
如果您仍然感兴趣或者有人使用 Google 偶然发现了这个话题:
VSC 有两个不同的引擎来自动完成。 1.遗留的“标签解析器” 2. 智能感知引擎
此时后者是默认的,“Tag Parser”是一个后备解决方案。如您所料,两者都在
c_cpp_properties.json
中配置。browse
中的路径以递归方式搜索并仅由 Tag Parser 使用,而includePath
中的路径不以递归方式搜索并由 IntelliSense 引擎使用。鉴于您的 header
MyFooClass.h
不直接位于根文件夹中,而是位于子文件夹include
中,您必须添加"${workspaceRoot }/include"
添加到您的includePath
中,以便完成有效的 IntelliSense 代码。如今,他们对此有更好的文档: https://github.com/Microsoft/vscode-cpptools/blob/master/Documentation/LanguageServer/c_cpp_properties.json.md
2025-04-13 15:07:05