Это действительно зависит от как вы включаете файлы заголовков.
Если вы включаете в себя двойные кавычки, например, например,
#include "some_header_file.h"
Тогда относительный путь из текущего местоположения файлов.
Если вы используете угловые скобки, например,
#include <some_header_file.h>
Тогда относительный путь основан на системе, включающей в себя дорожки.
Вы всегда можете добавить путь к системе, включая путь. Как это сделать, зависит от вашей среды и компилятора. Если вы используете Visual Studio, вы заходите в диалоговое окно свойств проекта, а на вкладке «C/C++»/«Общие» есть поле «Дополнительные каталоги Include», в котором вы можете добавлять каталоги. (Это для VS 2015, может отличаться от других версий.)
Что касается включения двойных кавычек. Допустим, ваша иерархия проекта выглядит следующим образом (на диске!):
Project
|-- Include
|-- Source
| `-- MoreSource
`-- Other
В Project/Source
у вас есть исходные файлы, и если один из них хочет, чтобы включить заголовочный файл Project/Include
, то это будет выглядеть как
#include "../include/header.h"
Теперь, если у вас есть исходный файл в Project/Source/MoreSource
, который требуется включить один и тот же файл заголовка будет
#include "../../include/header.h"
Может быть полезно добавить каталог Project/Include
в путь поиска системного заголовка. Вы можете использовать двойные кавычки для включения файлов, так как если они не будут найдены, препроцессор также будет искать пути к системе, но вам не нужен «полный» относительный путь.Если добавить Project/Include
на путь системного заголовка, вы могли бы написать просто
#include "header.h"
Или
#include <header.h>
Будьте осторожны, если у вас есть заголовочный файл с таким же именем, как фактический файл заголовка системы вы может иметь некоторые проблемы.
Привет, я фактически использую двойные кавычки. Однако препроцессор отвечает, что он не может найти папку (ярлык). Если я скопирую свою исходную папку в место моего исходного кода, она отлично работает. Однако, чтобы избежать избыточности, я не хочу этого –
@Python_user Не зная вашей точной структуры дискового каталога, на самом деле невозможно дать вам окончательный ответ. Но я обновил свой ответ на примере, который, надеюсь, поможет вам. –
У меня есть мои «оригинальные» файлы в определенном месте. Я не хочу копировать эти файлы в свой новый проект, чтобы избежать избыточности. Итак, я создал ярлыки для них, скопировал эти ярлыки в свой проект и попытался включить относительный путь к ярлыкам в моем коде. Вот где я получаю сообщение об ошибке. –