Где Visual Studio ищет файлы заголовков C++?


Я проверил копию приложения C++ из SourceForge (HoboCopy, если вам интересно) и попытался его скомпилировать.

Visual Studio говорит мне, что он не может найти конкретный файл заголовка. Я нашел файл в исходном дереве, но куда его нужно поместить, чтобы он был найден при компиляции?

есть ли специальные каталоги?

6 72

6 ответов:

в Visual Studio ищет заголовки в следующем порядке:

  • В текущем каталоге.
  • в дополнительных каталогах Include в свойствах проекта (в разделе C++ | General).
  • в Visual Studio C++ каталоги включения под инструментыопциипроекты и решениякаталоги VC++.

в вашем случае добавьте каталог, который заголовок в свойствах проекта.

Если проект поставляется с файлом проекта Visual Studio, то он уже должен быть настроен для поиска заголовков для вас. Если нет, вам нужно будет добавить каталог include file в настройки проекта, щелкнув правой кнопкой мыши проект и выбрав Свойства, нажав "C/C++" и добавив каталог, содержащий файлы include, в поле редактирования "дополнительные каталоги Include".

пытался добавить это в качестве комментария к Роб Prouseсообщение, но отсутствие форматирования сделало его непонятным.

в Visual Studio 2010 диалоговое окно "Инструменты | Параметры | проекты и решения | каталоги VC++" сообщает, что "редактирование каталогов VC++ в сервисах > параметры устарело", предлагая использовать довольно интуитивно понятный менеджер свойств.

Если вы действительно, действительно хотите обновить значение по умолчанию $(IncludePath), вы должны взломать соответствующая запись в одном из XML файлов:

\Program Files (x86)\MSBuild\Microsoft.СРР\В4.0\платформ\с Win32\PlatformToolsets\твердотельного накопителя V100, если\Майкрософт.СРР.Win32.твердотельного накопителя V100, если.реквизит

или

\Program Files (x86)\MSBuild\Microsoft.СРР\В4.0\платформ\х64\PlatformToolsets\твердотельного накопителя V100, если\Майкрософт.СРР.X64.твердотельного накопителя V100, если.реквизит

(вероятно, не рекомендуется Microsoft.)

там, кажется, ошибка в Visual Studio 2015 сообщества. Для 64-разрядного проекта папка include не найдена, если она не находится в конфигурации бит win32 Дополнительно Включить Папки список.

существует более новый вопрос, что поражает проблему лучше спросить Как включить пути работают в Visual Studio?

там становится раскрыт способ сделать это в новых версиях VisualStudio

  • только в текущем проекте (поскольку вопрос задан здесь), а также
  • для каждого нового проекта по умолчанию

второй является то, что ответ Стива Уилкинсон выше объясняет, что такое, как он полагал сам, а не то, что рекомендовал бы Microsoft.

чтобы сказать это короткий путь здесь: сделайте это, но сделайте это в пользовательском каталоге по адресу

C:\Users\UserName\AppData\Local\Microsoft\MSBuild\v4.0

в XML-файле

Microsoft.СРР.Win32.пользователь.реквизит

и/или

Microsoft.СРР.x64.пользователь.реквизит

и не в файлах C:\Program - каталог, где немодифицированный Заводской файл Microsoft планирует проживать.

тогда вы делаете это так, как VisualStudio делает это тоже, и все регулярно.

для получения дополнительной информации, почему это сделать так, см. Мой ответ здесь.

на самом деле на моем windows 10 с сообществом visual studio 2017 путь к заголовкам C++:

  1. C:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Tools\MSVC.15.26726\include

  2. C:\Program Files (x86)\Windows Kits\Include.0.17134.0\ucrt

первый содержит стандартные заголовки C++, такие как iostream,algorithm. 2-й содержит старые заголовки C, такие как stdio.h,string.h. Номер версии может отличаться в зависимости от программного обеспечения.

надеюсь, что это поможет.