Я в папке App
моего проекта. Я выполнить следующую команду для компиляции character.cpp
Где находится путь -I (captial i) относительно g ++?
g++ -Wall -std=c++11 -I../App -c Character/character.cpp -o Obj/character.o
, который находится в App/Character
каталоге. character.cpp
имеет следующие включают
#include "Inventory/inventory.hpp"
где папка inventory.cpp
является App/Inventory
.
Я думал, что я бегу команду g++
от App
, по умолчанию включают в себя путь будет начинаться с App
, и поэтому я не должен был бы иметь -I../App
часть команды. Для меня это, кажется, говорит: «Двигайтесь на один уровень выше, чем приложение, а затем переходите в приложение и включайте оттуда», что кажется излишним, но без этой строки оно не работает.
Может ли кто-нибудь объяснить, почему?
EDIT
Глядя на нее еще раз и еще некоторые документы, я считаю, что, если не указан -I пути, г ++ будет выглядеть в своих стандартных каталогах, а затем все остальные включают в себя (как тот, я вызываю проблемы) относятся к файлу, который их включает. Поэтому я должен добавить часть -I
, чтобы сказать «заглянуть в каталог приложения тоже», и так как это не нравится только -I
, я должен использовать ../App, потому что это эквивалентно не перемещению вообще. Может ли кто-нибудь подтвердить, насколько это точно?