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

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

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

Существуют ли специальные каталоги?

Ответ 1

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

  • В текущем исходном каталоге.
  • В разделе "Дополнительные каталоги" в свойствах проекта ("Свойства проекта → [имя проекта]" в разделе "C/C++ | Общие").
  • В Visual Studio C++ Включите каталоги в разделе Инструменты → Параметры → Проекты и решения → V C++ Каталоги.
  • В новых версиях Visual Studio (2015+) вышеуказанная опция устарела, и список включаемых по умолчанию каталогов доступен в Свойства проекта → Конфигурация → V C++ Каталоги

В вашем случае добавьте каталог с заголовком в свойства проекта (Свойства проекта → Конфигурация → C/C++ → Общие → Дополнительные каталоги включения).

Ответ 2

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

Ответ 3

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

  1. C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.15.26726\include

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

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

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

Ответ 4

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

В Visual Studio 2010 диалоговое окно "Инструменты | Параметры | Проекты и решения | VС++-каталоги" сообщает, что "Редактирование каталогов VС++ в" Инструменты " > " Параметры "устарело", предлагая использовать довольно интуитивно понятный Property Manager.

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

\ Program Files (X86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\PlatformToolsets\V100\Microsoft.Cpp.Win32.v100.props

или

\ Program Files (X86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\x64\PlatformToolsets\v100\Microsoft.Cpp.X64.v100.props

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

Ответ 5

Кажется, что ошибка в сообществе Visual Studio 2015. Для 64-битного проекта папка include не найдена, если только она не находится в списке дополнительных пакетов Include Folders в win32.

Ответ 6

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

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

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

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

Чтобы сказать это на коротком пути здесь: сделайте это, но сделайте это в User-Directory в

C:\Users\имя_пользователя\AppData\Local\Microsoft\MSBuild\v4.0

в XML файле

Microsoft.Cpp.Win32.user.props

и/или

Microsoft.Cpp.x64.user.props

а не в каталоге C:\program files - где предполагается, что немодифицированный Factory -File Microsoft будет находиться.

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

Подробнее о том, как это сделать, см. мой ответ там.