C++/G++, включая заголовки из другой папки
Мне дали проект C++ (для школы), который мне нужно запустить и добавить дополнительный код. Я хотел бы запустить проект в Visual Studio Code. Я скачал расширение C/C++, а также расширение Code Runner. Когда я пытаюсь запустить файл main.cpp, я получаю следующую ошибку:
Файл ANTLRInputStream.h находится в другой папке src, расположенной в папке времени выполнения. Я могу просто изменить включение на что-то вроде этого:
#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
}
Где я попробовал несколько вариантов, таких как:
- выполнения / SRC
- ${RootFolder}/ **
- ${RootFolder}/ выполнения / SRC
И некоторые из них похожи, но они не работают, и я не знаю, должны ли они работать (поскольку я не знаю, как настроить проекты C++ в VSCode). Как мне сделать так, чтобы все мои включения работали и могли запускать программу, не меняя каждое включение вручную, чтобы найти его местоположение?
1 ответ
На скриншоте показано сообщение об ошибке:
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 (в отличие от компилятора), где найти файлы заголовков. Этот мой ответ говорит оincludePath
Подробнее.
Оказывается (из CMakeLists.txt
файл в корневой папке, чтобы ваш проект был задуман как проект CMake. Вы можете найти информацию о расширении CMake для VSC здесь.