Создание статической библиотеки (VS)


В этой инструкции описан процесс создания и подключения собственных библиотек в Visual Studio 2019/2017.

Сборка библиотеки

  1. Создайте проект Visual Studio с типом Статическая библиотека (находится в разделе Visual C++ - Классические приложения).
  2. Добавьте в ваш проект заголовочные файлы и файлы с реализацией классов и функций, которые нужно собрать в библиотеку. Например, создадим файлы TestClass.h и TestClass.cpp:
    #ifndef _TESTCLASS_H_
    #define _TESTCLASS_H_
    #include <iostream>
    class TestClass
    {
    public:
    int echo(int);
    void helloWorld();
    };
    #endif // !_TESTCLASS_H_
    #include "TestClass.h"
    int TestClass::echo(int number)
    {
    return number;
    }
    void TestClass::helloWorld()
    {
    std::cout << "Hello, World!";
    }
  3. Соберите проект: щелкните правой кнопкой мыши по названию проекта в обозревателе решений и выберите Собрать.
  4. Найдите папку с собранной библиотекой. Она находится по адресу
    • [по умолчанию] <путь-к-папке-с-решением>/Debug, если вы выбрали платформу сборки x86 (Win32) и конфигурацию Debug
    • <путь-к-папке-с-решением>/Release, если вы выбрали платформу сборки x86 (Win32) и конфигурацию Release
    • <путь-к-папке-с-решением>/x64/Debug, если вы выбрали платформу сборки x64 и конфигурацию Debug
    • <путь-к-папке-с-решением>/x64/Release, если вы выбрали платформу сборки x64 и конфигурацию Release
    • <путь-к-папке-с-решением>/<название платформы>/<название конфигурации>, если у вас настроена нестандартная конфигурация сборки
  5. В этой папке должен находиться файл .lib с именем вашего проекта (например, если проект называется MyLib, то файл библиотеки назвается MyLib.lib).

Подключение библиотеки в проект

  1. Добавьте в файлы проекта собранную библиотеку lib.
  2. Подключите заголовочные файлы библиотеки в коде вашего проекта (или скопируйте их и добавьте в файлы проекта). Если проект с библиотекой и проект с использующим ее приложением находятся в одном решении, то заголовки библиотеки находятся в каталоге уровнем выше: ../<название-проекта>. Например:
    #include <iostream>
    #include "../MyLib/TestClass.h"
    int main()
    {
    TestClass c;
    std::cout << c.echo(12345);
    c.helloWorld();
    }

    Другой вариант: вы можете перейти в настройки проекта, раздел Каталоги VC++, и добавить в дополнительные каталоги подключаемых файлов в начало путь к папке с проектом библиотеки (не забудьте поставить точку с запятой в конце), например: C:/Projects/MySolution/MyLib; (если проект с библиотекой и проект с использующим ее приложением находятся в одном решении, то заголовки библиотеки находятся в каталоге уровнем выше: ../MyLib;). После этого вы сможете подключать заголовочные файлы без указания пути к каталогам:

    #include <iostream>
    #include "TestClass.h"
    int main()
    {
    TestClass c;
    std::cout << c.echo(12345);
    c.helloWorld();
    }

Не забудьте, что после внесения изменений в код файлов библиотеки ее необходимо собирать заново, чтобы она исправно функционировала в использующих ее приложениях. Для этого в обозревателе решений щелкните правой кнопкой мыши по названию проекта с библиотекой и выберите Пересобрать.