Где Visual Studio ищет заголовочные файлы C ++? - PullRequest
81 голосов
/ 02 декабря 2008

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

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

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

Ответы [ 6 ]

99 голосов
/ 02 декабря 2008

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

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

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

11 голосов
/ 02 декабря 2008

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

8 голосов
/ 03 октября 2018

На самом деле в моем 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

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

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

6 голосов
/ 23 февраля 2012

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

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

Если вы действительно хотите обновить значение $ (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 голосов
/ 26 февраля 2016

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

3 голосов
/ 24 февраля 2016

Возникает более новый вопрос: что лучше всего решить, задавая проблему Как работают пути включения в 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, и все регулярно.

Более подробную информацию о том, почему это нужно сделать, см. В моем ответе там .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...