VS Code中的“ includePath”和“ args -I PATH”之间有什么区别?

时间:2019-12-17 04:06:05

标签: visual-studio-code

在Linux for C ++中使用VS Code时,我发现需要配置两个文件: tasks.json c_cpp_properties.json

对于task.json,有:

"args": [ "-I", "$PATH",]

对于c_cpp_properties.json,有:

"configurations": ["includePath": ["$PATH1"], ...]

那么它们之间有什么区别?如果需要包含头文件,应该使用哪个文件?

1 个答案:

答案 0 :(得分:0)

tasks.json 是您编译/构建C ++应用程序所需要的。如果要添加新的头文件,则必须明确地args中指定该头文件的路径,以便将其传递给编译器。

发件人:https://code.visualstudio.com/docs/cpp/config-msvc#_create-a-build-task

  

args数组指定将被用作命令行参数的命令行参数。   传递给上一步中指定的编译器。他们   必须按照编译器预期的顺序显示。

如果您使用VS Code进行编译/构建,则绝对需要正确设置。


c_cpp_properties.json 主要用于支持C ++扩展的智能感知和自动完成功能。 includePath告诉扩展名在哪里可以找到头文件,以便您可以执行“转到定义”或其他代码导航操作。

发件人:https://code.visualstudio.com/docs/cpp/c-cpp-properties-schema-reference#_configuration-properties

  

includePath包含路径是包含头文件的文件夹   (例如#include "myHeaderFile.h")包含在来源中   文件。指定供IntelliSense引擎使用的路径列表   搜索包含的头文件。如果路径以/**结尾,则   IntelliSense引擎将对头文件进行递归搜索   从该目录开始。如果在Windows上使用Visual Studio   已安装,或者如果在compilerPath设置中指定了编译器,   不必在此列表中列出系统包含路径。

您还可以通过访问 Intellisense配置 UI,通过访问命令面板> C / C ++:编辑配置(UI)来修改 c_cpp_properties.json

enter image description here

您可以生存而无需正确配置 c_cpp_properties.json 。不需要编译/构建C ++代码。但这在您编写代码时会很有帮助。