файлы заголовков — Использование (относительных) путей к ярлыкам в операторах включения в переполнении стека

Я начал писать на C ++ несколько дней назад. Я использую Windows в качестве моей ОС для написания кода. Я держал все свои «хорошо написанные» коды в одном месте. Сейчас я работаю над проектом, который требует использования этих кодов. Итак, я планировал включить те файлы, которые мне нужны, в качестве заголовочных файлов в моем проекте. Однако, чтобы сделать мой проект «автономным», я создал ярлыки для тех папок, которые мне нужны, и сохранил их в исходной папке моего нового проекта и решил использовать относительные пути к ярлыкам в »includeзаявления в моем проекте.

Однако я получаю ошибку. Есть ли способ использовать относительные (или, вообще, абсолютные) пути к ярлыкам в include заявления C ++ в Windows?

Благодарю.

2

Решение

Это действительно зависит от как Вы включаете заголовочные файлы.

Если вы включите в двойные кавычки, например, например.

#include "some_header_file.h"

Тогда относительный путь от текущего местоположения файлов.

Если вы включаете использование угловых скобок, как, например,

#include <some_header_file.h>

Тогда относительный путь основывается на системных путях включения.

Вы всегда можете добавить путь к системному включаемому пути. Как это сделать, зависит от вашей среды и компилятора. Если вы используете Visual Studio, вы переходите в диалоговое окно свойств проекта, а на вкладке «C / C ++» / «Общие» есть поле «Дополнительные включаемые каталоги», в которое можно добавлять каталоги. (Это для VS 2015, может быть немного по-другому на других версиях.)


По поводу включения двойных кавычек. Допустим, иерархия вашего проекта выглядит следующим образом (на диск!):

проект
| - Включить
| - Источник
| `- MoreSource
`- Другое

В 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>

Однако будьте осторожны, если у вас есть файл заголовка с тем же именем, что и у реального файла системного заголовка, у вас могут возникнуть некоторые проблемы.

5

Другие решения

От https://superuser.com/questions/253935/what-is-the-difference-between-symbolic-link-and-shortcut

Вы не можете включить ярлык папки, так как это файл, а не папка.

Вы можете прочитать руководство по создать символическую ссылку на windows.

1

По вопросам рекламы [email protected]