Návod: Vytvoření a použití statické knihovny

Tento podrobný návod ukazuje, jak vytvořit statickou knihovnu (soubor .lib) pro použití s aplikacemi C++. Použití statické knihovny je skvělý způsob, jak znovu použít kód. Místo opětovné implementace stejných rutin do každé aplikace, která vyžaduje tuto funkci, je třeba je napsat jednou do statické knihovny a pak na ně odkažte z aplikací. Kód propojený ze statické knihovny se stává součástí vaší aplikace – pro použití kódu nemusíte instalovat další soubor.

Tento názorný postup se zabývá těmito úkoly:

Požadavky

Znalost základů jazyka C++

Vytvoření projektu statické knihovny

Pokyny k vytvoření projektu se liší v závislosti na vaší verzi Visual Studio. Pokud chcete zobrazit dokumentaci k preferované verzi Visual Studio, použijte ovládací prvek Selektor verzí. Nachází se v horní části obsahu na této stránce.

Vytvoření projektu statické knihovny v Visual Studio

  1. V řádku nabídek zvolteSoubor nový Project a otevřete dialogové okno Vytvořit nový Project.

  2. V horní části dialogového okna nastavte jazyk na C++,platformu na Windowsa typ Project knihovnu .

  3. Ve filtrovaném seznamu typů projektů vyberte Windows Desktop apak zvolte Další.

  4. Na stránce Configure your new project (Konfigurovat nový projekt) zadejte MathLibrary do pole Project name (Název projektu) a zadejte název projektu. Do pole Název řešení zadejte StaticMath. Výběrem tlačítka Vytvořit otevřete dialogové okno Windows Desktop Project.

  5. V dialogovém Windows Desktop Project v části Typ aplikacevyberte Statická knihovna (.lib).

  6. V části Další možnostizrušte zaškrtnutí políčka Předkompilovaná hlavička, pokud je zaškrtnuté. Zaškrtněte políčko Prázdný projekt.

  7. Zvolte OK a vytvořte projekt.

Vytvoření projektu statické knihovny v Visual Studio 2017

  1. V řádku nabídek zvolte Soubor NovýProject.

  2. V dialogovém okně Project nový pracovní Visual C++ Windows Desktopu. V podokně uprostřed vyberte Průvodce Windows Desktopu.

  3. Do pole Název zadejte název projektu , například MathLibrary. Do pole Název řešení zadejte název řešení, například StaticMath. Zvolte tlačítko OK.

  4. V dialogovém Windows Desktop Project v části Typ aplikacevyberte Statická knihovna (.lib).

  5. V části Další možnostizrušte zaškrtnutí políčka Předkompilovaná hlavička, pokud je zaškrtnuté. Zaškrtněte políčko Prázdný projekt.

  6. Zvolte OK a vytvořte projekt.

Vytvoření projektu statické knihovny v Visual Studio 2015

  1. V řádku nabídek zvolte Soubor NovýProject.

  2. V dialogovém okně Project nový soubor vyberte NainstalovanéšablonyVisual C++Win32. V podokně uprostřed vyberte Konzolová aplikace Win32.

  3. Do pole Název zadejte název projektu , například MathLibrary. Do pole Název řešení zadejte název řešení, například StaticMath. Zvolte tlačítko OK.

  4. V Průvodci aplikací Win32zvolte Další.

  5. Na stránce Nastavení aplikace v části Typ aplikacevyberte Statická knihovna. V části Další možnostizrušte zaškrtnutí políčka Předkompilovaná hlavička. Zvolte Dokončit a vytvořte projekt.

Přidání třídy do statické knihovny

Přidání třídy do statické knihovny

  1. Pokud chcete vytvořit soubor hlaviček pro novou třídu, kliknutím pravým tlačítkem otevřete místní nabídku pro projekt MathLibrary v Průzkumník řešenía pak zvolte Přidatnovou položku.

  2. V dialogovém okně Přidat novou položku vyberteVisual C++ Kód. V podokně uprostřed vyberte Header File (.h) (Soubor hlaviček (.h). Zadejte název souboru hlaviček, například MathLibrary.h,a pak zvolte tlačítko Přidat. Zobrazí se téměř prázdný soubor hlaviček.

  3. Přidejte deklaraci pro třídu s názvem , která bude provádět běžné matematické operace, jako je sčítání, odčítání, Arithmetic násobení a dělení. Kód by měl vypadat podobně jako:

    // MathLibrary.h
    #pragma once
    
    namespace MathLibrary
    {
        class Arithmetic
        {
        public:
            // Returns a + b
            static double Add(double a, double b);
    
            // Returns a - b
            static double Subtract(double a, double b);
    
            // Returns a * b
            static double Multiply(double a, double b);
    
            // Returns a / b
            static double Divide(double a, double b);
        };
    }
    
  4. Pokud chcete vytvořit zdrojový soubor pro novou třídu, otevřete místní nabídku pro projekt MathLibrary v Průzkumník řešenía pak zvolte Přidatnovou položku.

  5. V dialogovém okně Přidat novou položku vyberte ve středu soubor C++ (.cpp). Zadejte název zdrojového souboru, například MathLibrary.cpp,a pak zvolte tlačítko Přidat. Zobrazí se prázdný zdrojový soubor.

  6. Tento zdrojový soubor použijte k implementaci funkcí pro třídu Arithmetic . Kód by měl vypadat podobně jako:

    // MathLibrary.cpp
    // compile with: cl /c /EHsc MathLibrary.cpp
    // post-build command: lib MathLibrary.obj
    
    #include "MathLibrary.h"
    
    namespace MathLibrary
    {
        double Arithmetic::Add(double a, double b)
        {
            return a + b;
        }
    
        double Arithmetic::Subtract(double a, double b)
        {
            return a - b;
        }
    
        double Arithmetic::Multiply(double a, double b)
        {
            return a * b;
        }
    
        double Arithmetic::Divide(double a, double b)
        {
            return a / b;
        }
    }
    
  7. Pokud chcete sestavit statickou knihovnu, vyberte nařádku nabídek Sestavit řešení sestavení. Sestavení vytvoří statickou knihovnu MathLibrary.lib,kterou mohou používat jiné programy.

    Poznámka

    Při sestavování na příkazovém Visual Studio, musíte program sestavit ve dvou krocích. Nejprve spusťte cl /c /EHsc MathLibrary.cpp příkaz , který zkompiluje kód, a vytvořte soubor objektu s názvem cl /c /EHsc MathLibrary.cpp (Příkaz cl vyvolá kompilátor, Cl.exe a možnost /c určuje kompilaci bez propojení. Další informace najdete v tématu /c (kompilace bez propojení).) Potom spusťte příkaz lib MathLibrary.obj , který propojuje kód a vytvoří statickou knihovnu lib MathLibrary.obj (Příkaz lib vyvolá Správce knihovny, Lib.exe. Další informace najdete v referenčních informacích k knihovně LIB.)

Vytvoření konzolové aplikace C++, která odkazuje na statickou knihovnu

Vytvoření konzolové aplikace C++, která odkazuje na statickou knihovnu v Visual Studio

  1. V Průzkumník řešeníklikněte pravým tlačítkem na horní uzel Řešení StaticMatha otevřete místní nabídku. Zvolte Přidatnový Project a otevřete dialogové okno Přidat nový Project.

  2. V horní části dialogového okna nastavte filtr Project naKonzola.

  3. Ve filtrovaném seznamu typů projektů zvolte Konzolová aplikace a pak zvolte Další. Na další stránce zadejte do pole Název mathClient a zadejte název projektu.

  4. Zvolte tlačítko Vytvořit a vytvořte projekt klienta.

  5. Po vytvoření konzolové aplikace se pro vás vytvoří prázdný program. Název zdrojového souboru je stejný jako název, který jste zvolili dříve. V tomto příkladu má název MathClient.cpp .

Vytvoření konzolové aplikace C++, která odkazuje na statickou knihovnu v Visual Studio 2017

  1. V Průzkumník řešeníklikněte pravým tlačítkem na horní uzel Řešení StaticMatha otevřete místní nabídku. Zvolte Přidatnový Project a otevřete dialogové okno Přidat nový Project nový.

  2. V dialogovém okně Project nový soubor vyberte NainstalovánoVisual C++Windows Desktopu. V podokně uprostřed vyberte Průvodce Windows Desktopu.

  3. Do pole Název zadejte název projektu, například MathClient. Zvolte tlačítko OK.

  4. V dialogovém Windows Desktop Project v části Typ aplikacevyberte Konzolová aplikace (.exe).

  5. V části Další možnostizrušte zaškrtnutí políčka Předkompilovaná hlavička, pokud je zaškrtnuté.

  6. Zvolte OK a vytvořte projekt.

  7. Po vytvoření konzolové aplikace se pro vás vytvoří prázdný program. Název zdrojového souboru je stejný jako název, který jste zvolili dříve. V tomto příkladu má název MathClient.cpp .

vytvoření konzolové aplikace v jazyce C++, která odkazuje na statickou knihovnu v Visual Studio 2015

  1. V Průzkumník řešeníklikněte pravým tlačítkem myši na nejvyšší uzel, řešení ' StaticMath 'a otevřete místní nabídku. zvolením možnosti přidatnovou Project otevřete dialogové okno přidat nový Project .

  2. v dialogovém okně přidat novou Project vyberte možnost nainstalovanéVisual C++Win32. V prostředním podokně vyberte Konzolová aplikace Win32.

  3. Do pole název zadejte název projektu, například MathClient–. Klikněte na tlačítko OK .

  4. V dialogovém okně Průvodce aplikací Win32 klikněte na tlačítko Další.

  5. na stránce Nastavení aplikace v části typ aplikacese ujistěte, že je vybraná konzolová aplikace . v části další možnostizrušte zaškrtnutí políčka předkompilovaná hlavičkaa zaškrtněte políčko prázdné Project . Kliknutím na tlačítko Dokončit vytvořte projekt.

  6. Chcete-li přidat zdrojový soubor do prázdného projektu, klikněte pravým tlačítkem myši a otevřete místní nabídku pro projekt MathClient v Průzkumník řešenía pak zvolte možnost Přidatnovou položku.

  7. V dialogovém okně Přidat novou položku vyberte Visual C++kód. V prostředním podokně vyberte soubor C++ (. cpp). Zadejte název zdrojového souboru, například MathClient. cpp, a pak klikněte na tlačítko Přidat . Zobrazí se prázdný zdrojový soubor.

Použití funkce ze statické knihovny v aplikaci

Použití funkce ze statické knihovny v aplikaci

  1. Než budete moci použít matematické rutiny ve statické knihovně, je nutné na ni odkazovat. Otevřete místní nabídku projektu MathClient v Průzkumník řešenía pak zvolte Přidatodkaz.

  2. Dialogové okno Přidat odkaz obsahuje seznam knihoven, které lze odkazovat. Karta projekty obsahuje seznam projektů v aktuálním řešení a všechny knihovny, na které odkazují. Otevřete kartu projekty , zaškrtněte políčko MathLibrary a poté klikněte na tlačítko OK .

  3. Chcete-li odkazovat na MathLibrary.h hlavičkový soubor, je nutné upravit cestu k zahrnutým adresářům. V Průzkumník řešeníklikněte pravým tlačítkem myši na MathClient a otevřete místní nabídku. Kliknutím na vlastnosti otevřete dialogové okno stránky vlastností MathClient .

  4. V dialogovém okně stránky vlastností MathClient nastavte rozevírací seznam Konfigurace na všechny konfigurace. Nastavte rozevírací seznam platforma na všechny platformy.

  5. Vyberte Vlastnosti konfigurace Obecné stránka vlastnostíC/C++ . Do vlastnosti Další adresáře pro zahrnutí zadejte cestu k adresáři MathLibrary , nebo ji vyhledejte.

    Pro vyhledání cesty k adresáři:

    1. Otevřete rozevírací seznam další hodnota vlastnosti adresáře pro zahrnutí a zvolte možnost Upravit.

    2. V dialogovém okně Další adresáře k zahrnutí dvakrát klikněte na horní část textového pole. Pak zvolte tlačítko se třemi tečkami (...) na konci řádku.

    3. V dialogovém okně Vybrat adresář přejděte nahoru na úroveň a pak vyberte adresář MathLibrary . Pak zvolte tlačítko Vybrat složku a uložte výběr.

    4. V dialogovém okně Další adresáře k zahrnutí klikněte na tlačítko OK .

    5. V dialogovém okně stránky vlastností kliknutím na tlačítko OK uložte změny projektu.

  6. ArithmeticV této aplikaci teď můžete použít třídu zahrnutím #include "MathLibrary.h" hlavičky do kódu. Nahraďte obsah MathClient.cpp tímto kódem:

    // MathClient.cpp
    // compile with: cl /EHsc MathClient.cpp /link MathLibrary.lib
    
    #include <iostream>
    #include "MathLibrary.h"
    
    int main()
    {
        double a = 7.4;
        int b = 99;
    
        std::cout << "a + b = " <<
            MathLibrary::Arithmetic::Add(a, b) << std::endl;
        std::cout << "a - b = " <<
            MathLibrary::Arithmetic::Subtract(a, b) << std::endl;
        std::cout << "a * b = " <<
            MathLibrary::Arithmetic::Multiply(a, b) << std::endl;
        std::cout << "a / b = " <<
            MathLibrary::Arithmetic::Divide(a, b) << std::endl;
    
        return 0;
    }
    
  7. Chcete-li sestavit spustitelný soubor, v řádku nabídek vyberte sestavenířešení sestavení.

Spuštění aplikace

Spuštění aplikace

  1. Ujistěte se, že je vybrána možnost MathClient jako výchozí projekt. Pokud ho chcete vybrat, klikněte pravým tlačítkem myši a otevřete místní nabídku pro MathClient v Průzkumník řešenía pak zvolte nastavit jako spouštěcí Project.

  2. Chcete-li spustit projekt, na panelu nabídek vyberte možnost laditSpustit bez ladění. Výstup by měl vypadat přibližně takto:

    a + b = 106.4
    a - b = -91.6
    a * b = 732.6
    a / b = 0.0747475
    

Viz také

Návod: vytvoření a použití dynamické knihovny DLL (C++)
Desktopové aplikace (Visual C++)