2016-11-21 14 views
0

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

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

Спасибо.

ответ

2

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

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

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

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

+0

Привет, я фактически использую двойные кавычки. Однако препроцессор отвечает, что он не может найти папку (ярлык). Если я скопирую свою исходную папку в место моего исходного кода, она отлично работает. Однако, чтобы избежать избыточности, я не хочу этого –

+0

@Python_user Не зная вашей точной структуры дискового каталога, на самом деле невозможно дать вам окончательный ответ. Но я обновил свой ответ на примере, который, надеюсь, поможет вам. –

+0

У меня есть мои «оригинальные» файлы в определенном месте. Я не хочу копировать эти файлы в свой новый проект, чтобы избежать избыточности. Итак, я создал ярлыки для них, скопировал эти ярлыки в свой проект и попытался включить относительный путь к ярлыкам в моем коде. Вот где я получаю сообщение об ошибке. –

1

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

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

Вы можете прочитать руководство по адресу create symbolic link on windows.

+1

Спасибо, возможно ли вам обратиться к разговору в ответ, заданный @Some программистом-чуваком? (так как это позволит избежать повторного запроса моего запроса) –

 Смежные вопросы

  • Нет связанных вопросов^_^