Jaka jest różnica między „Uwzględnij katalogi” a „Dodatkowe uwzględnione katalogi”

95

We właściwościach konfiguracyjnych mojego projektu, w „Katalogach VC ++” znajduje się wpis „Dołącz katalogi”. Ale w opcji „C / C ++” jest inny wpis o nazwie „Dodatkowe katalogi dołączane”. To samo dzieje się z katalogami bibliotek.

Jaka jest różnica między tymi dwoma wpisami?

wprowadź opis obrazu tutaj wprowadź opis obrazu tutaj

Artium
źródło

Odpowiedzi:

48

To jest niezręczność, która została wprowadzona w VS2010. Ustawienia katalogów VC ++ znajdowały się wcześniej w menu Narzędzia + Opcje, Projekty i rozwiązania, Katalogi VC ++. Ustawienia globalne stosowane do każdego projektu zbudowanego na komputerze. Nadal tam jest, ale wskazuje, że powinieneś teraz zmienić to w ustawieniach projektu. Efekt uboczny remontu silnika kompilacji w VS2010, umożliwiający budowanie za pomocą msbuild. Usunięcie ustawień dla poszczególnych projektów byłoby logiczne, ale spowodowałoby to uszkodzenie zbyt wielu istniejących projektów.

W związku z tym prawdopodobnie najlepiej jest traktować ustawienia katalogów VC ++ jako domyślne dla maszyny. Jest on automatycznie ustawiany przez instalator VS. Majstrować przy tym tylko wtedy, gdy potrzebujesz nietypowej kolejności wyszukiwania w katalogu, umieszczając niestandardowe lokalizacje na końcu. To bardzo nietypowe.

To jednak działa. I w końcu zostało to wykorzystane. Zwiększanie możliwości ustawienia zestawu narzędzi platformy w wersji VS2012 i nowszych. Inny kompilator, inny konsolidator, różne katalogi #include, inna ścieżka wyszukiwania konsolidatora. Zmodyfikowany tylko jednym ustawieniem, fajnie.

Hans Passant
źródło
3
Hmmm ... To jest prawda, że Gloabl opcje są zapisywane w tym - ale to jest arkusz właściwości Microsoft.Cpp.Win32.useri tylko to. Jeśli edytujesz wpis „VC ++ Directories”, gdy projekt jest aktywny lub inny arkusz właściwości, wówczas zmiana zostanie utrwalona w .vcxprojpliku lub w odpowiednim .propspliku i nie będzie w ogóle dotyczyć całego użytkownika.
Martin Ba,
25

Include odpowiada zmiennej środowiskowej INCLUDE.

Ustawienia katalogu wyświetlane w oknie to katalogi, które program Visual Studio będzie wyszukiwać w plikach dołączanych, do których odwołuje się plik kodu źródłowego. Odpowiada zmiennej środowiskowej INCLUDE.

Podczas gdy dodatkowe katalogi dołączane są przekazywane za pośrednictwem argumentu wiersza poleceń (tj. \IOpcji).

CodeNaked
źródło
20

KONFIGURACJA OBEJMUJE ŚCIEŻKI

Katalogi VC ++: Uwzględnij katalogi

  • ta wartość jest dziedziczona ze zmiennej środowiskowej INCLUDE Windows, która jest zdefiniowana poza programem Visual Studio
    • zmienne środowiskowe mogą być: globalne dla komputera lub mieć zasięg na poziomie użytkownika
    • INCLUDEI LIBzmienne środowiskowe są tworzone, gdy Microsoft Windows SDK jest instalowany z Visual Studio .

C / C ++: dodatkowe dołączanie katalogów

  • to ustawienie na poziomie projektu ... będziesz musiał zdefiniować tę wartość dla każdego projektu w swoim rozwiązaniu
  • tę wartość można utrwalić w kontroli źródła

DODATKOWE UWAGI

Którego powinienem użyć?

Decyzja o użyciu dołączonych katalogów lub dodatkowych dołączanych katalogów będzie zależeć od procesu rozwoju organizacji. Moim zdaniem ważniejsze jest:

  • że jesteś w stanie konsekwentnie i niezawodnie odtworzyć środowisko programistyczne (pomyśl: przekazanie kodu źródłowego innemu programistowi)
  • deweloperzy w organizacji stosują spójne podejście

Uwaga dotycząca makr

  • Makra konfiguracyjne projektu C ++ (nie mylić z #definedyrektywą preprocesora C ++ ) dziedziczą zawartość z różnych źródeł. Makra takie jak ...
    • $(Include)dziedziczą wartości ze zmiennych środowiskowych systemu Windows
    • $(OutDir)dziedziczą swoje wartości z Visual Studio IDE

BIBLIOGRAFIA

Pressacco
źródło