Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом пошаговом руководстве описывается создание статической библиотеки (LIB-файла) для использования с приложениями C++. Статические библиотеки являются хорошим способом повторного использования кода. Вместо повторного выполнения одних и тех же подпрограмм в каждом приложении, требующем функциональных возможностей, напишите их один раз в статической библиотеке, а затем сослаться на них из приложений. Код, связанный со статической библиотекой, становится частью приложения. Вам не нужно устанавливать другой файл для использования кода.
В этом пошаговом руководстве рассматриваются следующие задачи:
Создание консольного приложения C++, ссылающегося на статическую библиотеку
Использование функциональности из статической библиотеки в приложении
Предварительные условия
Понимание основ языка C++.
Создание проекта статической библиотеки
Инструкции по созданию проекта зависят от используемой версии Visual Studio. Чтобы ознакомиться с документацией по предпочтительной версии Visual Studio, используйте селектор Версия. Он находится в верхней части оглавления на этой странице.
Чтобы создать проект статической библиотеки в Visual Studio:
В строке меню выберите "Создать файл>>Project, чтобы открыть диалоговое окно "Создание нового project".
В верхней части диалогового окна для параметра Язык установите значение C++, для параметра Платформа — значение Windows, а для параметра Тип проекта — значение Библиотека.
В отфильтрованном списке типов проектов выберите Windows Desktop Wizard, а затем нажмите кнопку Далее.
На странице Настроить новый проект введите MathLibrary в поле Имя проекта. В поле Имя решения введите StaticMath. Нажмите кнопку Создать, чтобы открыть диалоговое окно Проект рабочего стола Windows.
В диалоговом окне Проект классического приложения Windows в разделе Тип приложения выберите Статическая библиотека (.lib).
В разделе Дополнительные параметры снимите флажок Предварительно скомпилированные заголовки, если он установлен. Выберите пустой проект.
Нажмите кнопку ОК, чтобы создать проект.
Создание проекта статической библиотеки в Visual Studio 2017 г.:
В строке меню выберите Файл >Создать >Проект.
В диалоговом окне "Создать проект" выберите "Установленные>Visual C++>Windows Desktop". На центральной панели выберите Мастер рабочего стола Windows.
Укажите имя проекта, например MathLibrary, в поле "Имя ". Укажите имя решения, например StaticMath, в поле "Имя решения ". Выберите OK.
В диалоговом окне Проект классического приложения Windows в разделе Тип приложения выберите Статическая библиотека (.lib).
В разделе "Дополнительные параметры" снимите флажок предварительно скомпилированного заголовка , если он выбран. Выберите пустой проект.
Нажмите кнопку ОК, чтобы создать проект.
Чтобы создать проект статической библиотеки в Visual Studio 2015:
В строке меню выберите Файл >Создать >Проект.
В диалоговом окне Создание проекта выберите Установленные>шаблоны>Visual C++>Win32. В центральной области выберите Консольное приложение Win32.
Укажите имя проекта, например MathLibrary, в поле "Имя ". Укажите имя решения, например StaticMath, в поле "Имя решения ". Выберите OK.
В мастере приложений Win32 нажмите кнопку Далее.
На странице Параметры приложения в разделе Тип приложения выберите Статическая библиотека. В разделе "Дополнительные параметры" снимите флажок предварительно скомпилированного заголовка . Чтобы создать проект, нажмите кнопку Готово.
Добавление класса в статическую библиотеку
Чтобы добавить класс в статическую библиотеку, выполните следующие действия.
Создайте файл заголовка для нового класса. В Обозреватель решений щелкните правой кнопкой мыши MathLibrary, чтобы открыть контекстное меню проекта. Щелкните Добавить>Новый элемент.
В диалоговом окне "Добавление нового элемента" выберите Visual C++>Code. В центральной области выберите Заголовочный файл (.h). Укажите имя файла заголовка, например MathLibrary.h, а затем нажмите кнопку "Добавить". Отобразится почти пустой файл заголовка.
Добавьте объявление класса с именем
Arithmeticдля выполнения обычных арифметических операций, таких как сложение, вычитание, умножение и деление. Код должен выглядеть примерно так:// 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); }; }Чтобы создать исходный файл для нового класса, откройте контекстное меню проекта MathLibrary в Обозреватель решений, а затем нажмите кнопку "Добавить>новый элемент".
В диалоговом окне "Добавление нового элемента" в центральной области выберите файл C++ (.cpp). Укажите имя исходного файла, например MathLibrary.cpp. Затем выберите Добавить. Отобразится пустой исходный файл.
Используйте этот исходный файл для реализации функций класса
Arithmetic. Код должен выглядеть примерно так:// 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; } }Чтобы выполнить сборку статической библиотеки, выберите в строке меню команду Сборка>Собрать решение. Сборка создает статическую библиотеку MathLibrary.lib, которую могут использовать другие программы.
Примечание.
При выполнении сборки из командной строки Visual Studio программа собирается в два этапа.
- Выполните компиляцию
cl /c /EHsc MathLibrary.cppкода и создайте файл объекта с именем MathLibrary.obj. Командаclвызывает компилятор, Cl.exeи/cпараметр указывает компиляцию без связывания. Дополнительные сведения см. в разделе /c (компиляция без связывания). - Выполните команду
lib MathLibrary.obj, чтобы связать код и создать статическую библиотеку MathLibrary.lib. Командаlibвызывает диспетчер библиотек, Lib.exe. Дополнительные сведения см. в справочнике по LIB.
- Выполните компиляцию
Создание консольного приложения C++, ссылающегося на статическую библиотеку
Чтобы создать консольное приложение C++ со ссылкой на статическую библиотеку в Visual Studio:
В Обозревателе решений щелкните правой кнопкой на верхнем узле — Решение "StaticMath", чтобы открыть контекстное меню. Выберите пункты Добавить>Новый проект, чтобы открыть диалоговое окно Добавить новый проект.
В верхней части диалогового окна задайте для фильтра Тип проекта значение Консоль.
В отфильтрованном списке типов проектов щелкните Консольное приложение, а затем нажмите кнопку Далее. На следующей странице введите MathClient в качестве имени проекта.
Нажмите кнопку "Создать", чтобы создать клиентский проект.
После того как вы создадите консольное приложение, для вас будет создана пустая программа. Имя исходного файла будет совпадать с ранее выбранным именем. В этом примере он имеет имя
MathClient.cpp.
Создание консольного приложения C++, ссылающегося на статическую библиотеку в Visual Studio 2017:
В Обозревателе решений щелкните правой кнопкой мыши по верхнему узлу решение "StaticMath", чтобы открыть контекстное меню. Выберите пункты Добавить>Новый проект, чтобы открыть диалоговое окно Добавить новый проект.
В диалоговом окне "Добавление нового Project" выберите "Установить>Visual C++>Windows Desktop". На центральной панели выберите Мастер рабочего стола Windows.
Укажите имя для проекта, например MathClient, в поле Имя. Нажмите кнопку ОК.
В диалоговом окне Проект классического приложения Windows в разделе Тип приложения выберите Консольное приложение (EXE).
В разделе "Дополнительные параметры" снимите флажок предварительно скомпилированного заголовка , если он выбран.
Нажмите кнопку ОК, чтобы создать проект.
После того как вы создадите консольное приложение, для вас будет создана пустая программа. Имя исходного файла будет совпадать с ранее выбранным именем. В этом примере он имеет имя
MathClient.cpp.
Создание консольного приложения C++, ссылающегося на статическую библиотеку в Visual Studio 2015:
В Обозреватель решений щелкните правой кнопкой мыши на верхнем узле, Solution "StaticMath", чтобы открыть контекстное меню. Выберите пункты Добавить>Новый проект, чтобы открыть диалоговое окно Добавить новый проект.
В диалоговом окне "Добавление нового Project" выберите "Установить>Visual C++>Win32". В центральной области выберите Консольное приложение Win32.
Укажите имя для проекта, например MathClient, в поле Имя. Нажмите кнопку ОК.
В диалоговом окне Мастер приложений Win32 нажмите кнопку Далее.
На странице Параметры приложения выберите в поле Тип приложения пункт Консольное приложение. В разделе «Дополнительные параметры» снимите флажок «Предварительно скомпилированные заголовки», а затем выберите «Пустой проект». Чтобы создать проект, нажмите кнопку Готово.
Чтобы добавить исходный файл в пустой проект, щелкните правой кнопкой мыши контекстное меню проекта MathClient в Обозреватель решений, а затем нажмите кнопку "Добавить>новый элемент".
В диалоговом окне "Добавление нового элемента" выберите Visual C++>Code. В центральной области выберите Файл C++ (.cpp). Укажите имя исходного файла, например MathClient.cpp, и нажмите кнопку Добавить. Отобразится пустой исходный файл.
Использование функциональности из статической библиотеки в приложении
Чтобы использовать функциональные возможности из статической библиотеки в приложении, выполните следующие действия.
Подключите статическую библиотеку перед использованием содержащихся в ней математических функций. Откройте контекстное меню проекта MathClient в Обозреватель решений и нажмите кнопку "Добавить>ссылку".
В диалоговом окне "Добавить ссылку" перечислены библиотеки, на которые можно ссылаться. На вкладке Проекты перечислены проекты текущего решения и все библиотеки, на которые они ссылаются. Откройте вкладку "Проекты" , выберите MathLibrary и нажмите кнопку "ОК".
Измените путь к включенным каталогам, чтобы ссылаться на файл заголовка
MathLibrary.h. В Обозреватель решений щелкните правой кнопкой мыши MathClient, чтобы открыть контекстное меню. Выберите свойства , чтобы открыть диалоговое окно "Страницы свойств MathClient ".В диалоговом окне "Страницы свойств MathClient" задайте для параметра "Конфигурация" значение "Все конфигурации". Задайте для Платформа значение Все платформы.
Перейдите на страницу свойств Свойства конфигурации>C/C++>Общие. В свойстве Дополнительные каталоги включаемых файлов укажите путь к каталогу MathLibrary или найдите этот каталог.
Чтобы найти путь к каталогу, выполните указанные ниже действия.
Откройте раскрывающийся список значений свойства Дополнительные каталоги включаемых файлов, а затем выберите Изменить.
В диалоговом окне "Дополнительные каталоги включения" дважды щелкните в верхней части текстового поля. Нажмите кнопку с многоточием (...) в конце строки.
В диалоговом окне "Выбор каталога " перейдите вверх по уровню и выберите каталог MathLibrary . Затем нажмите кнопку Выбрать папку, чтобы сохранить выбор.
В диалоговом окне «Дополнительные каталоги включения» нажмите кнопку «ОК».
В диалоговом окне "Страницы свойств" нажмите кнопку "ОК ", чтобы сохранить изменения в проекте.
Теперь в этом приложении можно использовать класс
Arithmetic, включив в код заголовок#include "MathLibrary.h". Замените содержимоеMathClient.cppна следующий код:// 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; }Чтобы выполнить сборку исполняемого файла, выберите в строке меню команду Сборка>Собрать решение.
Выполнить приложение
Чтобы запустить приложение, выполните следующие действия.
Убедитесь в том, что проект MathClient выбран в качестве проекта по умолчанию. Чтобы выбрать этот проект, щелкните правой кнопкой мыши MathClient в Обозревателе решений, чтобы открыть контекстное меню, а затем выберите Назначить запускаемым проектом.
В строке меню выберите "Запуск отладки>без отладки" , чтобы запустить проект. Выходные данные должны выглядеть примерно так:
a + b = 106.4 a - b = -91.6 a * b = 732.6 a / b = 0.0747475
См. также
Пошаговое руководство. Создание и использование библиотеки DLL (C++)