В чем разница между «Включить каталоги» и «Дополнительные каталоги включения» - PullRequest
85 голосов
/ 30 июля 2011

В свойствах конфигурации моего проекта в разделе «Каталоги VC ++» есть запись «Включить каталоги». Но в опции «C / C ++» есть еще одна запись, которая называется «Дополнительные каталоги включения». То же самое происходит с каталогами библиотек.

В чем разница между этими двумя записями?

enter image description here enter image description here

Ответы [ 3 ]

42 голосов
/ 30 июля 2011

Это неловкость, которая была введена в VS2010. Настройки каталогов VC ++ использовались в «Инструменты + Опции», «Проекты и решения», «Каталоги VC ++». Глобальные настройки, применяемые к каждому проекту, созданному на компьютере. Это все еще там, но указывает, что теперь вы должны изменить его в настройках проекта Побочный эффект капитального ремонта движка сборки в VS2010, позволяющий строить с помощью msbuild. Удаление настроек для проекта было бы логично, но это сломало бы слишком много существующих проектов.

Таким образом, вероятно, лучше всего рассматривать параметры каталогов VC ++ как параметры машины по умолчанию. Он автоматически устанавливается установщиком VS. Поработайте с ним только в том случае, если вам нужен необычный порядок поиска в каталогах, оставляя пользовательские местоположения последними. Очень необычно для этого.

Это работает, однако. И это в конечном итоге было использовано. Расширение возможностей набора инструментов платформы в VS2012 и выше. Другой компилятор, другой компоновщик, разные каталоги #include, другой путь поиска компоновщика. Модифицировано всего одной настройкой, приятно.

21 голосов
/ 30 июля 2011

Включить каталоги соответствует переменной среды INCLUDE.

Настройки каталогов, отображаемые в окне, это каталоги, которые Visual Studio будет искать включаемые файлы, указанные в вашем источнике кодовые файлы. Соответствует переменной окружения INCLUDE.

В то время как Дополнительные каталоги включения передаются через аргумент командной строки (то есть опция \I).

13 голосов
/ 18 августа 2015

НАСТРОЙКА ВКЛЮЧАЕТ ПУТИ

Каталоги VC ++: Включить каталоги

  • это значение унаследовано от переменной среды INCLUDE Windows , которая определена вне Visual Studio
    • Переменные среды могут быть: глобальными для компьютера или иметь область действия уровня пользователя
    • Переменные среды INCLUDE и LIB создаются при установке Microsoft Windows SDK с Visual Studio .

C / C ++: дополнительные каталоги для включения

  • - это настройка уровня проекта ... вам нужно будет определить это значение для каждого проекта в вашем решении
  • это значение может быть сохранено для контроля источника

ДОПОЛНИТЕЛЬНЫЕ ЗАМЕЧАНИЯ

Какой я должен использовать?

Решение использовать Включить каталоги или Дополнительные каталоги включения будет зависеть от процесса разработки вашей организации. На мой взгляд, это важнее:

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

Примечание о макросах

  • Конфигурация проекта C ++ макросы (не путать с директивой препроцессора C ++ #define) наследуют контент из разных источников. Макросы как ...
    • $(Include) наследуют их значения от Windows переменных среды
    • $(OutDir) наследуют их значения от Visual Studio IDE

СПИСОК ЛИТЕРАТУРЫ

...