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 jazyka C++. Použití statické knihovny je skvělý způsob, jak znovu použít kód. Místo opětovného vytvoření stejných rutin ve všech aplikacích, které vyžadují funkce, je napište jednou do statické knihovny a pak na ně odkazujte z aplikací. Kód propojený ze statické knihovny se stane součástí vaší aplikace. Abyste mohli kód používat, nemusíte instalovat jiný soubor.

Tento názorný postup popisuje tyto úlohy:

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 sady Visual Studio. Pokud chcete zobrazit dokumentaci pro upřednostňovanou verzi sady Visual Studio, použijte ovládací prvek selektoru verzí . Nachází se v horní části obsahu na této stránce.

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

  1. Na panelu nabídek zvolte Soubor>Nový>Projekt a otevřete dialogové okno Vytvořit nový projekt.

  2. V horní části dialogového okna nastavte jazyk na C++, nastavte platformu pro Windows a nastavte typ projektu na knihovnu.

  3. V filtrovaném seznamu typů projektů vyberte Windows Průvodce plochou a pak zvolte Další.

  4. Na stránce Konfigurovat nový projekt zadejte do pole Název projektu mathLibrarya zadejte název projektu. Do pole Název řešení zadejte StaticMath. Kliknutím na tlačítko Vytvořit otevřete dialogové okno Desktopový projekt windows.

  5. V dialogovém okně Desktopový projekt systému Windows vyberte v části Typ aplikace statickou knihovnu (.lib).

  6. V části Další možnosti zrušte zaškrtnutí políčka Předkompilované záhlaví, pokud je zaškrtnuté . Vyberte Prázdný projekt.

  7. Zvolte OK a vytvořte projekt.

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

  1. Na řádku nabídek zvolte Soubor>Nový>Projekt.

  2. V dialogovém okně Nový Project vyberte Nainstalovaná>aplikace Visual C++>Windows Desktop. V prostředním podokně vyberte Průvodce Windows Desktop.

  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. Vyberte OK.

  4. V dialogovém okně Desktopový projekt systému Windows vyberte v části Typ aplikace statickou knihovnu (.lib).

  5. V části Další možnosti zrušte zaškrtnutí políčka Předkompilované záhlaví, pokud je zaškrtnuté . Vyberte Prázdný projekt.

  6. Zvolte OK a vytvořte projekt.

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

  1. Na řádku nabídek zvolte Soubor>Nový>Projekt.

  2. V dialogovém okně Nový Project vyberte Nainstalované>šablony>Visual C++>Win32. V prostředním podokně vyberte konzolovou aplikaci 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. Vyberte OK.

  4. V Průvodci aplikací Win32 zvolte Další.

  5. Na stránce Nastavení aplikace v části Typ aplikace vyberte Statickou knihovnu. V části Další možnosti zrušte zaškrtnutí políčka Předkompilované záhlaví . Zvolte Dokončit a vytvořte projekt.

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

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

  1. Vytvořte soubor záhlaví pro novou třídu. V Průzkumník řešení kliknutím pravým tlačítkem myši na MathLibrary otevřete místní nabídku projektu. Vyberte Přidat>novou položku.

  2. V dialogovém okně Přidat novou položku vyberte Visual C++>Code. V prostředním podokně vyberte Soubor záhlaví (.h). Zadejte název souboru záhlaví, například MathLibrary.h, a pak vyberte Přidat. Zobrazí se téměř prázdný soubor záhlaví.

  3. Přidejte deklaraci pro třídu pojmenovanou Arithmetic k provádění běžných matematických operací, jako jsou sčítání, odčítání, násobení a dělení. Kód by měl vypadat přibližně takto:

    // 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. Chcete-li vytvořit zdrojový soubor pro novou třídu, otevřete místní nabídku projektu MathLibrary v Průzkumník řešení a pak zvolte Přidat>novou položku.

  5. V dialogovém okně Přidat novou položku v prostředním podokně vyberte soubor C++ (.cpp). Zadejte název zdrojového souboru, například MathLibrary.cpp. Pak vyberte Přidat. Zobrazí se prázdný zdrojový soubor.

  6. Pomocí tohoto zdrojového souboru implementujte funkce pro třídu Arithmetic. Kód by měl vypadat přibližně takto:

    // 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. Statickou knihovnu sestavíte tak, že na řádku nabídek vyberete Sestavit>Sestavit řešení. Sestavení vytvoří statickou knihovnu MathLibrary.lib, kterou můžou používat jiné programy.

    Poznámka:

    Při sestavování na příkazovém řádku sady Visual Studio je nutné program sestavit ve dvou krocích.

    1. Spusťte cl /c /EHsc MathLibrary.cpp kompilaci kódu a vytvořte soubor objektu s názvem MathLibrary.obj. Příkaz cl vyvolá kompilátor, Cl.exea /c možnost určuje kompilaci bez propojení. Další informace naleznete v tématu /c (kompilace bez propojení).
    2. Spusťte lib MathLibrary.obj, aby se slinkoval kód a vytvořila statická knihovna MathLibrary.lib. Příkaz lib vyvolá Správce knihovny Lib.exe. Další informace naleznete v tématu Referenční informace k knihovně LIB.

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

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

  1. V Průzkumníku řešení klikněte pravým tlačítkem myši na horní uzel, Řešení „StaticMath“, a otevřete tak kontextovou nabídku. Zvolte Přidat>nový projekt a otevřete dialogové okno Přidat nový projekt .

  2. V horní části dialogového okna nastavte filtr typu projektu na Konzolu.

  3. V filtrovaném seznamu typů projektů zvolte Konzolová aplikace a pak zvolte Další. Na další stránce zadejte MathClient jako název projektu.

  4. Zvolte Vytvořit a vytvořte projekt klienta.

    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 příkladu se jmenuje MathClient.cpp.

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

  1. V Průzkumníku řešení klikněte pravým tlačítkem myši na horní uzel Řešení „StaticMath“, čímž otevřete kontextovou nabídku. Zvolte Přidat>nový projekt a otevřete dialogové okno Přidat nový projekt .

  2. V dialogovém okně Přidat nový Project vyberte Nainstalovaná>aplikace Visual C++>Windows Desktop. V prostředním podokně vyberte Průvodce Windows Desktop.

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

  4. V dialogovém okně Desktopový projekt systému Windows v části Typ aplikace vyberte Konzolová aplikace (.exe).

  5. V části Další možnosti zrušte zaškrtnutí políčka Předkompilované záhlaví, 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 příkladu se jmenuje MathClient.cpp.

Vytvoření konzolové aplikace 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 horní uzel Řešení „StaticMath“ a otevřete místní nabídku. Zvolte Přidat>nový projekt a otevřete dialogové okno Přidat nový projekt .

  2. V dialogovém okně Přidat nový Project vyberte Nainstalovaný>Visual C++>Win32. V prostředním podokně vyberte konzolovou aplikaci Win32.

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

  4. V dialogovém okně Průvodce aplikací Win32 zvolte Další.

  5. Na stránce Nastavení aplikace v části Typ aplikace se ujistěte, že je vybraná konzolová aplikace. V části Další možnosti zrušte zaškrtnutí možnosti Předkompilované záhlaví a pak vyberte Prázdný projekt. Zvolte Dokončit a vytvořte projekt.

  6. Chcete-li přidat zdrojový soubor do prázdného projektu, kliknutím pravým tlačítkem otevřete místní nabídku projektu MathClient v Průzkumník řešení a pak zvolte Přidat>novou položku.

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

Použití funkcí ze statické knihovny v aplikaci

Použití funkcí ze statické knihovny v aplikaci:

  1. Před použitím matematických rutin ze statické knihovny na ni odkažte. Otevřete kontextovou nabídku projektu MathClient v Průzkumník řešení a potom zvolte Přidat>Reference.

  2. Dialogové okno Přidat odkaz obsahuje seznam knihoven, na které můžete odkazovat. Na kartě Projekty jsou uvedeny projekty v aktuálním řešení a všechny knihovny, na které odkazují. Otevřete kartu Projekty , vyberte MathLibrary a pak vyberte OK.

  3. Upravte cestu k zahrnovaným adresářům tak, aby odkazovala na hlavičkový soubor MathLibrary.h. V Průzkumník řešení kliknutím pravým tlačítkem na MathClient otevřete místní nabídku. Zvolte Vlastnosti a otevřete dialogové okno Stránky vlastností MathClient .

  4. V dialogovém okně Stránky vlastností MathClient nastavte hodnotu Konfigurace na Všechny konfigurace. Nastavte platformu na všechny platformy.

  5. Vyberte stránku vlastností konfigurace>C/C++>Obecné. Ve vlastnosti Additional Include Directories zadejte cestu k adresáři MathLibrary nebo ho vyhledejte.

    Chcete-li procházet cestu k adresáři:

    1. Rozbalte rozevírací seznam vlastnosti Dodatečné adresáře zahrnutí a pak zvolte Upravit.

    2. V dialogovém okně Další adresáře zahrnout poklikejte v horní části textového pole. Pak na konci řádku zvolte tlačítko se třemi tečkou (...).

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

    4. V dialogovém okně Další adresáře zahrnout zvolte tlačítko OK .

    5. V dialogovém okně Stránky vlastností zvolte tlačítko OK a uložte změny projektu.

  6. Teď můžete v této aplikaci použít třídu Arithmetic zahrnutím záhlaví #include "MathLibrary.h" do svého 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. Spustitelný soubor sestavíte tak, že v nabídce zvolíte Build>Build Solution.

Spustit aplikaci

Spuštění aplikace:

  1. Ujistěte se, že je jako výchozí projekt vybrán MathClient . Pokud ho chcete vybrat, kliknutím pravým tlačítkem na MathClient v Průzkumník řešení otevřete kontextovou nabídku a pak zvolte Nastavit jako spouštěný projekt.

  2. Na řádku nabídek zvolte Debug>Spustit bez ladění a spusťte projekt. 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++)