C ++ / G ++,包括来自另一个文件夹的标头

时间:2018-09-17 11:07:15

标签: c++ visual-studio-code include header-files vscode-code-runner

已为我提供了一个C ++项目(用于学校),我需要运行该项目并向其中添加其他代码。我想在Visual Studio Code中运行该项目。我已经下载了C / C ++扩展以及Code Runner扩展。当我尝试运行main.cpp文件时,出现以下错误:

enter image description here

ANTLRInputStream.h文件位于运行时文件夹中的另一个src文件夹中。我可以将include更改为以下内容:

#include "../runtime/src/ANTLRInputStream.h" 

但是这会给我另一个错误,即在ANTLRInputStream中有一堆包含项,这些包含项还引用了位于其他位置的头文件。

我有以下属性文件:

{
"configurations": [
    {
        "name": "MinGW",
        "compilerPath": "C:/Program Files (x86)/mingw-w64/i686-8.1.0-posix-dwarf-rt_v6-rev0/mingw32/bin/gcc.exe",
        "includePath": [
            "${workspaceFolder}/**",
            "runtime/src"
        ],
        "defines": [
            "_DEBUG",
            "UNICODE",
            "_UNICODE"
        ],
        "intelliSenseMode": "gcc-x64"
    }
],
"version": 4
}

我尝试过一些变体,例如:

  • runtime / src
  • $ {rootFolder} / **
  • $ {rootFolder} / runtime / src

还有一些类似的东西,但是它们不起作用,我也不知道它们是否应该起作用(因为我真的不知道如何在VSCode中设置C ++项目)。我将如何使我的所有包含项工作并且能够运行该程序而无需手动更改每个包含项以找到其位置?

2 个答案:

答案 0 :(得分:0)

(在根文件夹中的CMakeLists.txt文件中,您的项目似乎是CMake项目。您可以在Vake here的CMake扩展名上找到信息。

答案 1 :(得分:0)

在屏幕截图中,错误消息为:

main.cpp:2:10: fatal error: ANTLRInputStream.h: No such file or directory

此错误来自编译器g++,而不是Visual Studio Code。 VSCode只是在其自己的输出窗口中向您显示编译器的输出。

要解决此问题,您必须使用-I选项告诉编译器在哪里寻找文件,例如:

g++ -I../runtime/src main.cpp -o main

includePath中的c_cpp_properties.json属性用于告诉VSCode(与编译器相对)在哪里查找头文件。我的This answer更详细地谈论了includePath