Porady: porządkowanie plików wyjściowych projektu dla kompilacji

W tym temacie opisano najlepsze rozwiązania dotyczące organizowania plików wyjściowych projektu. Błędy kompilacji mogą wystąpić podczas nieprawidłowego konfigurowania plików wyjściowych projektu. W tym temacie opisano również zalety i wady każdej alternatywy dla organizowania plików wyjściowych projektu.

Odwoływanie się do zestawów CLR

Aby odwołać się do zestawów za pomocą #using

  1. Zestaw można odwoływać się bezpośrednio z kodu przy użyciu dyrektywy #using, takiej jak #using <System.Data.dll>. Aby uzyskać więcej informacji, zobacz #using Dyrektywy.

    Określony plik może być plikiem dll, .exe, .netmodule lub .obj, o ile znajduje się w MSIL. Odwołany składnik można skompilować w dowolnym języku. Korzystając z tej opcji, będziesz mieć dostęp do funkcji IntelliSense, ponieważ metadane zostaną wyodrębnione z biblioteki MSIL. Plik, o których mowa, musi znajdować się w ścieżce dla projektu; w przeciwnym razie projekt nie zostanie skompilowany, a funkcja IntelliSense nie będzie dostępna. Łatwym sposobem określenia, czy plik znajduje się w ścieżce, jest kliknięcie prawym przyciskiem myszy wiersza #using i wybranie polecenia Otwórz dokument . Jeśli nie można odnaleźć pliku, otrzymasz powiadomienie.

    Jeśli nie chcesz umieścić pełnej ścieżki do pliku, możesz użyć opcji kompilatora /AI , aby edytować ścieżkę wyszukiwania dla #using odwołań. Aby uzyskać więcej informacji, zobacz /AI (Określanie katalogów metadanych).

Aby odwołać się do zestawów za pomocą /FU

  1. Zamiast odwoływać się do zestawu bezpośrednio z pliku kodu, jak opisano powyżej, można użyć opcji kompilatora /FU . Zaletą tej metody jest to, że nie trzeba dodawać oddzielnej instrukcji #using do każdego pliku, który odwołuje się do danego zestawu.

    Aby ustawić tę opcję, otwórz strony właściwości dla projektu. Rozwiń węzeł Właściwości konfiguracji, a następnie rozwiń węzeł C/C++ i wybierz pozycję Zaawansowane. Dodaj żądane zestawy obok pozycji Wymuś #using. Aby uzyskać więcej informacji, zobacz /FU (Nazwa wymuszonego pliku #using).

Aby odwołać się do zestawów za pomocą polecenia Dodaj nowe odwołanie

  1. Jest to najprostszy sposób używania zestawów CLR. Najpierw upewnij się, że projekt jest kompilowany za pomocą opcji /clr kompilatora. Następnie kliknij prawym przyciskiem myszy projekt z Eksplorator rozwiązań i wybierz pozycję Dodaj, odwołania. Zostanie wyświetlone okno dialogowe Strony właściwości.

  2. W oknie dialogowym Strony właściwości wybierz pozycję Dodaj nowe odwołanie. Zostanie wyświetlone okno dialogowe z listą wszystkich zestawów .NET, COM i innych zestawów dostępnych w bieżącym projekcie. Wybierz żądany zestaw i kliknij przycisk OK.

    Po ustawieniu odwołania do projektu odpowiednie zależności są automatycznie obsługiwane. Ponadto, ponieważ metadane są częścią zestawu, nie ma potrzeby dodawania pliku nagłówka ani tworzenia prototypów elementów używanych z zarządzanych zestawów.

Odwoływanie się do natywnych bibliotek DLL lub bibliotek statycznych

Aby odwołać się do natywnych bibliotek DLL lub bibliotek statycznych

  1. Odwołaj się do odpowiedniego pliku nagłówka w kodzie przy użyciu dyrektywy #include. Plik nagłówka musi znajdować się w ścieżce dołączania lub części bieżącego projektu. Aby uzyskać więcej informacji, zobacz #include Dyrektywa (C/C++).

  2. Można również ustawić zależności projektu. Ustawianie zależności projektu gwarantuje dwie elementy. Najpierw gwarantuje, że projekty są wbudowane w odpowiedniej kolejności, dzięki czemu projekt zawsze może znaleźć pliki zależne, których potrzebuje. Po drugie, niejawnie dodaje katalog wyjściowy projektu zależnego do ścieżki, aby pliki można było łatwo znaleźć w czasie łączenia.

  3. Aby wdrożyć aplikację, należy umieścić bibliotekę DLL w odpowiednim miejscu. Może to być jeden z następujących elementów:

    1. Ta sama ścieżka co plik wykonywalny.

    2. W dowolnym miejscu ścieżki systemowej (zmiennej środowiskowej ścieżki ).

    3. W zestawie obok siebie. Aby uzyskać więcej informacji, zobacz Kompilowanie zestawów równoległych języka C/C++.

Praca z wieloma projektami

Domyślnie projekty są tworzone tak, aby wszystkie pliki wyjściowe były tworzone w podkatalogu katalogu projektu. Katalog jest nazwany na podstawie konfiguracji kompilacji (np. debugowania lub wydania). Aby projekty równorzędne odwołyły się do siebie, każdy projekt musi jawnie dodać inne katalogi wyjściowe projektu do swojej ścieżki, aby można było połączyć się z powodzeniem. Odbywa się to automatycznie po ustawieniu zależności projektu. Jeśli jednak nie używasz zależności, musisz dokładnie sobie z tym poradzić, ponieważ kompilacje mogą stać się bardzo trudne do zarządzania. Na przykład gdy projekt ma konfiguracje debugowania i wydania i zawiera bibliotekę zewnętrzną z projektu równorzędnego, powinien używać innego pliku biblioteki w zależności od konfiguracji, która jest kompilowana. W związku z tym stałe kodowanie tych ścieżek może być trudne.

Wszystkie niezbędne pliki wyjściowe (takie jak pliki wykonywalne, pliki konsolidatora przyrostowego i pliki PDB) są kopiowane do wspólnego katalogu rozwiązań. W związku z tym podczas pracy z rozwiązaniem, które zawiera wiele projektów języka C++ z równoważnymi konfiguracjami, wszystkie pliki wyjściowe są scentralizowane w celu uproszczonego łączenia i wdrażania. Możesz mieć pewność, że ich aplikacja/biblioteka będą działać zgodnie z oczekiwaniami, jeśli zachowają te pliki razem (ponieważ pliki mają gwarancję, że znajdują się w ścieżce).

Lokalizacja plików wyjściowych może być głównym problemem podczas wdrażania w środowisku produkcyjnym. Podczas uruchamiania projektów w środowisku IDE ścieżki do dołączonych bibliotek nie muszą być takie same jak w środowisku produkcyjnym. Jeśli na przykład masz w kodzie, ale następnie wdrożysz #using "../../lib/debug/mylib.dll" plik mylib.dll w innej pozycji względnej, aplikacja zakończy się niepowodzeniem w czasie wykonywania. Aby temu zapobiec, należy unikać używania ścieżek względnych w instrukcjach #include w kodzie. Lepiej jest zapewnić, że niezbędne pliki znajdują się w ścieżce kompilacji projektu i podobnie upewnij się, że odpowiednie pliki produkcyjne są prawidłowo umieszczone.

Jak określić miejsce, w którym przechodzą pliki wyjściowe

  1. Lokalizację ustawień danych wyjściowych projektu można znaleźć na stronach właściwości projektu. Rozwiń węzeł obok pozycji Właściwości konfiguracji i wybierz pozycję Ogólne. Lokalizacja wyjściowa jest określona obok pozycji Katalog wyjściowy. Aby uzyskać więcej informacji, zobacz Ogólna strona właściwości (projekt).

Zobacz też

Typy projektów języka C++ w programie Visual Studio