Создание статической библиотеки (VS)
В этой инструкции описан процесс создания и подключения собственных библиотек в Visual Studio 2019/2017.
Сборка библиотеки
- Создайте проект Visual Studio с типом Статическая библиотека (находится в разделе Visual C++ - Классические приложения).
- Добавьте в ваш проект заголовочные файлы и файлы с реализацией классов и функций, которые нужно собрать в библиотеку. Например, создадим файлы 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!"; }
- Соберите проект: щелкните правой кнопкой мыши по названию проекта в обозревателе решений и выберите Собрать.
- Найдите папку с собранной библиотекой. Она находится по адресу
- [по умолчанию]
<путь-к-папке-с-решением>/Debug
, если вы выбрали платформу сборки x86 (Win32) и конфигурацию Debug <путь-к-папке-с-решением>/Release
, если вы выбрали платформу сборки x86 (Win32) и конфигурацию Release<путь-к-папке-с-решением>/x64/Debug
, если вы выбрали платформу сборки x64 и конфигурацию Debug<путь-к-папке-с-решением>/x64/Release
, если вы выбрали платформу сборки x64 и конфигурацию Release<путь-к-папке-с-решением>/<название платформы>/<название конфигурации>
, если у вас настроена нестандартная конфигурация сборки
- [по умолчанию]
- В этой папке должен находиться файл .lib с именем вашего проекта (например, если проект называется MyLib, то файл библиотеки назвается MyLib.lib).
Подключение библиотеки в проект
- Добавьте в файлы проекта собранную библиотеку lib.
- Подключите заголовочные файлы библиотеки в коде вашего проекта (или скопируйте их и добавьте в файлы проекта). Если проект с библиотекой и проект с использующим ее приложением находятся в одном решении, то заголовки библиотеки находятся в каталоге уровнем выше:
../<название-проекта>
. Например:#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(); }
Не забудьте, что после внесения изменений в код файлов библиотеки ее необходимо собирать заново, чтобы она исправно функционировала в использующих ее приложениях. Для этого в обозревателе решений щелкните правой кнопкой мыши по названию проекта с библиотекой и выберите Пересобрать.