Sdílet prostřednictvím


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 mathLibrary a 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 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. 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 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 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++)