Где 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++:
-
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.15.26726\include
-
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 делает это тоже, и все регулярно.
Подробнее о том, как это сделать, см. мой ответ там.