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 napíšete jednou ve statické knihovně a pak na ně odkazujete z aplikací. Kód propojený ze statické knihovny se stane součástí vaší aplikace – nemusíte instalovat jiný soubor, abyste mohli kód používat.

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 sadě Visual Studio

  1. Na řádku 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 Průvodce plochou systémem Windows 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é. Zaškrtněte políčko Prázdný projekt.

  7. Zvolte OK a vytvořte projekt.

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

  1. Na řádku nabídek zvolte Soubor>nový>projekt.

  2. V dialogovém okně Nový projekt vyberte Nainstalovaná>plocha Visual C++>Windows. V prostředním podokně vyberte Průvodce plochou windows.

  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 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é. Zaškrtněte políčko Prázdný projekt.

  6. Zvolte OK a vytvořte projekt.

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

  1. Na řádku nabídek zvolte Soubor>nový>projekt.

  2. V dialogovém okně Nový projekt 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. Zvolte tlačítko OK.

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

  5. Na stránce Nastavení aplikace vyberte v části Typ aplikace 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. Chcete-li vytvořit soubor záhlaví pro novou třídu, kliknutím pravým tlačítkem otevřete místní nabídku projektu MathLibrary v Průzkumník řešení a pak zvolte 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 zvolte tlačítko 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, a pak zvolte tlačítko 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>řešení sestavení. 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. Nejprve 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.exe a /c možnost určuje kompilaci bez propojení. Další informace naleznete v tématu /c (kompilace bez propojení).) Za druhé spuštěním propojte lib MathLibrary.obj kód a vytvořte statickou knihovnu 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 C++, která odkazuje na statickou knihovnu v sadě Visual Studio

  1. V Průzkumník řešení kliknutím pravým tlačítkem myši na horní uzel Řešení StaticMath otevřete místní 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 typ projektu na Konzolu.

  3. V filtrovaném seznamu typů projektů zvolte Konzolová aplikace a pak zvolte Další. Na další stránce zadejte do pole Název mathClienta 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 příkladu se jmenuje MathClient.cpp.

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

  1. V Průzkumník řešení kliknutím pravým tlačítkem myši na horní uzel Řešení StaticMath 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ý projekt vyberte Nainstalovaná>plocha Visual C++>Windows. V prostředním podokně vyberte Průvodce plochou windows.

  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 sadě Visual Studio 2015

  1. V Průzkumník řešení kliknutím pravým tlačítkem myši na horní uzel Řešení StaticMath 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ý projekt 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í políčka Předkompilované záhlaví a zaškrtněte políčko 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. Než budete moct použít matematické rutiny ve statické knihovně, musíte na ni odkazovat. Otevřete místní nabídku projektu MathClient v Průzkumník řešení a pak zvolte Přidat>odkaz.

  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, zaškrtněte políčko MathLibrary a pak zvolte tlačítko OK.

  3. Chcete-li odkazovat na MathLibrary.h soubor záhlaví, musíte upravit cestu zahrnutých adresářů. V Průzkumník řešení otevřete místní nabídku kliknutím pravým tlačítkem na MathClient. Zvolte Vlastnosti a 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 Platformy 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.

    Procházení cesty k adresáři:

    1. Otevřete rozevírací seznam s hodnotou vlastnosti Další zahrnout adresáře a pak zvolte Upravit.

    2. V dialogovém okně Další zahrnout adresáře 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ší zahrnout adresáře zvolte tlačítko OK .

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

  6. Třídu v této aplikaci teď můžete použít Arithmetic zahrnutím hlavičky #include "MathLibrary.h" 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. Spustitelný soubor sestavíte tak, že na řádku nabídek zvolíte Sestavit řešení sestavení>.

Spustit aplikaci

Spuštění aplikace

  1. Ujistěte se, že je jako výchozí projekt vybrán MathClient . Chcete-li ji vybrat, kliknutím pravým tlačítkem otevřete místní nabídku pro MathClient v Průzkumník řešení a pak zvolte Nastavit jako spouštěcí projekt.

  2. Pokud chcete projekt spustit, na řádku nabídek zvolte Spustit ladění>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++)