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
Na řádku nabídek zvolte Soubor>nový>projekt a otevřete dialogové okno Vytvořit nový projekt.
V horní části dialogového okna nastavte jazyk na C++, nastavte platformu pro Windows a nastavte typ projektu na knihovnu.
V filtrovaném seznamu typů projektů vyberte Průvodce plochou systémem Windows a pak zvolte Další.
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.
V dialogovém okně Desktopový projekt systému Windows vyberte v části Typ aplikace statickou knihovnu (.lib).
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.
Zvolte OK a vytvořte projekt.
Vytvoření projektu statické knihovny v sadě Visual Studio 2017
Na řádku nabídek zvolte Soubor>nový>projekt.
V dialogovém okně Nový projekt vyberte Nainstalovaná>plocha Visual C++>Windows. V prostředním podokně vyberte Průvodce plochou windows.
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.
V dialogovém okně Desktopový projekt systému Windows vyberte v části Typ aplikace statickou knihovnu (.lib).
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.
Zvolte OK a vytvořte projekt.
Vytvoření projektu statické knihovny v sadě Visual Studio 2015
Na řádku nabídek zvolte Soubor>nový>projekt.
V dialogovém okně Nový projekt vyberte Nainstalované>šablony>Visual C++>Win32. V prostředním podokně vyberte konzolovou aplikaci Win32.
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.
V Průvodci aplikací Win32 zvolte Další.
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
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.
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í.
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); }; }
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.
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.
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; } }
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říkazcl
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 propojtelib MathLibrary.obj
kód a vytvořte statickou knihovnu MathLibrary.lib. (Příkazlib
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
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 .
V horní části dialogového okna nastavte filtr typ projektu na Konzolu.
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.
Zvolte tlačítko 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 sadě Visual Studio 2017
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 .
V dialogovém okně Přidat nový projekt vyberte Nainstalovaná>plocha Visual C++>Windows. V prostředním podokně vyberte Průvodce plochou windows.
Do pole Název zadejte název projektu , například MathClient. Zvolte tlačítko OK.
V dialogovém okně Desktopový projekt systému Windows v části Typ aplikace vyberte Konzolová aplikace (.exe).
V části Další možnosti zrušte zaškrtnutí políčka Předkompilované záhlaví , pokud je zaškrtnuté.
Zvolte OK a vytvořte projekt.
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
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 .
V dialogovém okně Přidat nový projekt vyberte Nainstalovaný>Visual C++>Win32. V prostředním podokně vyberte konzolovou aplikaci Win32.
Do pole Název zadejte název projektu , například MathClient. Zvolte tlačítko OK.
V dialogovém okně Průvodce aplikací Win32 zvolte Další.
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.
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.
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
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.
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.
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.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.
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:
Otevřete rozevírací seznam s hodnotou vlastnosti Další zahrnout adresáře a pak zvolte Upravit.
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 (...).
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.
V dialogovém okně Další zahrnout adresáře zvolte tlačítko OK .
V dialogovém okně Stránky vlastností zvolte tlačítko OK a uložte změny projektu.
Třídu v této aplikaci teď můžete použít
Arithmetic
zahrnutím hlavičky#include "MathLibrary.h"
do kódu. Nahraďte obsahMathClient.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; }
Spustitelný soubor sestavíte tak, že na řádku nabídek zvolíte Sestavit řešení sestavení>.
Spustit aplikaci
Spuštění aplikace
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.
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