[当downloading(在C ++,Windows)下,包含在其中的文件的目录并不总是相对于该文件,例如,antlr4-runtime/atn/AbstractPredicateTransition.h
包含#include "atn/Transition.h"
,除非我删除了atn/
,否则该文件将失败。很多文件都会发生这种情况。
有时文件包含正确和不正确的内容,例如,此处两个头文件都与文件位于同一目录中,因此只有最下面的一个正确:
#include "atn/AbstractPredicateTransition.h"
#include "SemanticContext.h"
应该是:
#include "AbstractPredicateTransition.h"
#include "SemanticContext.h"
(antlr4-runtime\atn\PrecedencePredicateTransition.h
)
我试图通过在同一目录中创建一个新的.vscode
文件夹并添加带有以下文本的c_cpp_properties.json
文件来解决此问题(我不知道是否需要includePath
以外的其他内容,但我ve不管怎么说,以防万一):
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}",
"antlr4-runtime",
"antlr4-runtime/atn",
"antlr4-runtime/dfa",
"antlr4-runtime/misc",
"antlr4-runtime/support",
"antlr4-runtime/tree"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"intelliSenseMode": "msvc-x64",
"browse": {
"path": [
"C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Auxiliary/VS/include/*",
"${workspaceFolder}"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
},
"cStandard": "c11",
"cppStandard": "c++17",
"compilerPath": "C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.24.28314/bin/Hostx64/x64/cl.exe"
}
],
"version": 4
}
注意:尽管有通往Visual Studio的路径,但我正在使用Visual Studio 代码。
我已经尝试过includePath
的各种不同列表,例如["${workspaceFolder}", "antlr4-runtime"]
和放置antlr4-runtime in a different folder higher up
。但是,它仍然给我同样的错误,即包含无效的包含路径。
[似乎,如果我可以使文件尝试从antlr4-runtime
文件夹开始包含,那么所有包含都将是有效的,因为似乎所有包含都相对于该文件夹内部。
在屏幕截图中,我正在尝试通过解析JSON来创建'hello world'。
在Driver.cpp
中,包含以下内容:
#include <iostream>
#include <fstream>
#include "antlr4-runtime/antlr4-runtime.h"
#include "JSONLexer.h"
#include "JSONParser.h"
#include "antlr4-runtime/JSONVisitor.h"
(这些都没有下面的红色波浪线)
antlr4-runtime
文件夹中有各种与JSON相关的文件,但其余部分是从here下载的(对于Windows为4.7.1)。