Пошаговое руководство. Создание и использование статической библиотеки

В этом пошаговом руководстве описывается создание статической библиотеки (LIB-файла) для использования с приложениями C++. Статические библиотеки являются хорошим способом повторного использования кода. Вместо того чтобы каждый раз реализовывать одни и те же подпрограммы для обеспечения той или иной функциональности в каждом создаваемом приложении, их можно создать единожды и затем вызывать из приложений. Код, связанный из статической библиотеки, станет частью приложения — . для использования кода не нужно устанавливать другой файл.

В этом пошаговом руководстве рассматриваются следующие задачи:

Предварительные требования

Для работы необходимо владеть основами языка C++.

Создание проекта статической библиотеки

Инструкции по созданию проекта зависят от используемой версии Visual Studio. Чтобы ознакомиться с документацией по предпочтительной версии Visual Studio, используйте селектор Версия. Он находится в верхней части оглавления на этой странице.

Создание проекта статической библиотеки в Visual Studio

  1. в строке меню выберите файлсоздатьProject , чтобы открыть диалоговое окно создание нового Project .

  2. в верхней части диалогового окна задайте для параметра Language значение C++, задайте для параметра Platform значение Windowsи задайте для параметра Project тип значение Library.

  3. В отфильтрованном списке типов проектов выберите пункт Мастер классических приложений Windows, а затем нажмите кнопку Далее.

  4. На странице Настроить новый проект введите MathLibrary в поле Имя проекта. В поле Имя решения введите StaticMath. Нажмите кнопку Создать, чтобы открыть диалоговое окно Проект классического приложения Windows.

  5. В диалоговом окне Проект классического приложения Windows в разделе Тип приложения выберите Статическая библиотека (.lib) .

  6. В разделе Дополнительные параметры снимите флажок Предварительно откомпилированный заголовок, если он установлен. Установите флажок Пустой проект.

  7. Нажмите кнопку ОК, чтобы создать проект.

Создание проекта статической библиотеки в Visual Studio 2017

  1. В строке меню выберите Файл Создать Проект.

  2. в диалоговом окне создание Project выберите установленныйVisual C++Windows рабочий стол. На центральной панели выберите Мастер классических приложений Windows.

  3. Укажите имя проекта — , например —— в поле — . Укажите имя решения — , например —— в поле — . Нажмите кнопку ОК .

  4. В диалоговом окне Проект классического приложения Windows в разделе Тип приложения выберите Статическая библиотека (.lib) .

  5. В разделе Дополнительные параметры снимите флажок Предварительно откомпилированный заголовок, если он установлен. Установите флажок Пустой проект.

  6. Нажмите кнопку ОК, чтобы создать проект.

Создание проекта статической библиотеки в Visual Studio 2015

  1. В строке меню выберите Файл Создать Проект.

  2. в диалоговом окне создание Project выберите установленныешаблоныVisual C++Win32. В центральной области выберите Консольное приложение Win32.

  3. Укажите имя проекта — , например —— в поле — . Укажите имя решения — , например —— в поле — . Нажмите кнопку ОК .

  4. В мастере приложений Win32 нажмите кнопку Далее.

  5. На странице Параметры приложения в разделе Тип приложения выберите Статическая библиотека. В разделе Дополнительные параметры снимите флажок Предварительно откомпилированный заголовок. Чтобы создать проект, нажмите кнопку Готово.

Добавление класса в статическую библиотеку

Добавление класса в статическую библиотеку

  1. Чтобы создать файл заголовка для нового класса, щелкните правой кнопкой мыши, чтобы открыть контекстное меню проекта маслибрари в Обозреватель решений, а затем выберите команду добавитьновый элемент.

  2. В диалоговом окне Добавление нового элемента выберите Visual C++код. В центральной области выберите Заголовочный файл (.h) . Укажите имя файла заголовка — , например —, — а затем нажмите кнопку — . Отобразится почти пустой файл заголовка.

  3. Добавьте объявление класса с именем 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);
        };
    }
    
  4. Чтобы создать исходный файл для нового класса, откройте контекстное меню проекта маслибрари в Обозреватель решений, а затем выберите добавитьновый элемент.

  5. В диалоговом окне Добавление нового элемента в центральной области выберите Файл C++ (.cpp) . Укажите имя исходного файла — , например —, — а затем нажмите кнопку — . Отобразится пустой исходный файл.

  6. Используйте этот исходный файл для реализации функций класса 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;
        }
    }
    
  7. Чтобы построить статическую библиотеку, выберите Сборкапостроить решение в строке меню. В результате будет создана статическая библиотека MathLibrary.lib, которая может использоваться другими программами.

    Примечание

    При выполнении сборки из командной строки Visual Studio программа собирается в два этапа. Сначала выполните команду, cl /c /EHsc MathLibrary.cpp чтобы скомпилировать код и создать объектный файл с именем cl /c /EHsc MathLibrary.cpp. ( cl Команда вызывает компилятор, Cl.exe, а /c параметр указывает Compile без компоновки. Дополнительные сведения см. в разделе /c (компиляция без компоновки). Затем выполните команду, lib MathLibrary.obj чтобы связать код и создать статическую библиотеку lib MathLibrary.obj. (Команда lib вызывает диспетчер библиотек, Lib.exe. Дополнительные сведения см. в разделе LIB Reference.)

Создание консольного приложения C++, ссылающегося на статическую библиотеку

Создание консольного приложения C++, ссылающегося на статическую библиотеку, в Visual Studio

  1. В обозревателе решений щелкните правой кнопкой мыши узел верхнего уровня Решение StaticMath, чтобы открыть контекстное меню. выберите добавитьновый Project , чтобы открыть диалоговое окно добавление нового Project .

  2. В верхней части диалогового окна задайте для фильтра Тип проекта значение Консоль.

  3. В отфильтрованном списке типов проектов щелкните Консольное приложение, а затем нажмите кнопку Далее. На следующей странице в поле Имя введите имя проекта MathClient.

  4. Нажмите кнопку Создать, чтобы создать клиентский проект.

  5. После создания консольного приложения будет создана пустая программа. Имя исходного файла будет совпадать с ранее выбранным именем. В этом примере он имеет имя MathClient.cpp.

Создание консольного приложения C++, ссылающегося на статическую библиотеку, в Visual Studio 2017

  1. В обозревателе решений щелкните правой кнопкой мыши узел верхнего уровня Решение StaticMath, чтобы открыть контекстное меню. нажмите кнопку добавитьновый Project , чтобы открыть диалоговое окно добавление нового Project .

  2. в диалоговом окне добавление нового Project выберите установленныйVisual C++Windows рабочий стол. На центральной панели выберите Мастер классических приложений Windows.

  3. Укажите имя проекта — , например —— в поле — . Нажмите кнопку ОК .

  4. В диалоговом окне Проект классического приложения Windows в разделе Тип приложения выберите Консольное приложение (EXE) .

  5. В разделе Дополнительные параметры снимите флажок Предварительно откомпилированный заголовок, если он установлен.

  6. Нажмите кнопку ОК, чтобы создать проект.

  7. После создания консольного приложения будет создана пустая программа. Имя исходного файла будет совпадать с ранее выбранным именем. В этом примере он имеет имя MathClient.cpp.

Создание консольного приложения C++, ссылающегося на статическую библиотеку, в Visual Studio 2015

  1. В обозревателе решений щелкните правой кнопкой мыши узел верхнего уровня Решение StaticMath, чтобы открыть контекстное меню. нажмите кнопку добавитьновый Project , чтобы открыть диалоговое окно добавление нового Project .

  2. в диалоговом окне добавление нового Project выберите установленоVisual C++Win32. В центральной области выберите Консольное приложение Win32.

  3. Укажите имя проекта — , например —— в поле — . Нажмите кнопку ОК .

  4. В диалоговом окне Мастер приложений Win32 нажмите кнопку Далее.

  5. На странице Параметры приложения выберите в поле Тип приложения пункт Консольное приложение. В разделе Дополнительные параметры снимите флажок Предварительно откомпилированный заголовок, а затем установите флажок Пустой проект. Чтобы создать проект, нажмите кнопку Готово.

  6. Чтобы добавить исходный файл в пустой проект, щелкните правой кнопкой мыши, чтобы открыть контекстное меню проекта масклиент в Обозреватель решений, а затем выберите команду добавитьновый элемент.

  7. В диалоговом окне Добавление нового элемента выберите Visual C++код. В центральной области выберите Файл C++ (.cpp) . Укажите имя исходного файла — , например —, — а затем нажмите кнопку — . Отобразится пустой исходный файл.

Использование функциональности из статической библиотеки в приложении

Использование функциональности из статической библиотеки в приложении

  1. Для использования математических процедур из статической библиотеки необходимо сослаться на эту библиотеку. Откройте контекстное меню проекта масклиент в Обозреватель решений, а затем выберите добавитьссылку.

  2. В диалоговом окне Добавление ссылки перечислены библиотеки, на которые можно создать ссылку. На вкладке Проекты перечислены проекты текущего решения и все библиотеки, на которые они ссылаются. На вкладке Проекты установите флажок MathLibrary, а затем нажмите кнопку ОК.

  3. Для создания ссылки на файл заголовка MathLibrary.h необходимо изменить путь к каталогам включаемых файлов. В обозревателе решений щелкните правой кнопкой мыши проект MathClient, чтобы открыть контекстное меню. Выберите пункт Свойства, чтобы открыть диалоговое окно Страницы свойств MathClient.

  4. В диалоговом окне Страницы свойств MathClient в раскрывающемся списке Конфигурация выберите пункт Все конфигурации. В раскрывающемся списке Платформа выберите пункт Все платформы.

  5. Выберите страницу свойств Свойства конфигурацииC/C++Общие . В свойстве Дополнительные каталоги включаемых файлов укажите путь к каталогу MathLibrary или найдите этот каталог.

    Чтобы найти путь к каталогу, выполните указанные ниже действия.

    1. Откройте раскрывающийся список значений свойства Дополнительные каталоги включаемых файлов, а затем выберите Изменить.

    2. В диалоговом окне Дополнительные каталоги включаемых файлов дважды щелкните в верхней части текстового поля. Нажмите кнопку с многоточием ( ... ) в конце строки.

    3. В диалоговом окне Выбор каталога перейдите на уровень вверх и выберите каталог MathLibrary. Затем нажмите кнопку Выбрать папку, чтобы сохранить выбор.

    4. В диалоговом окне Дополнительные каталоги включаемых файлов нажмите кнопку ОК.

    5. В диалоговом окне Страницы свойств нажмите кнопку OK, чтобы сохранить изменения в проекте.

  6. Теперь в этом приложении можно использовать класс 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;
    }
    
  7. Чтобы создать исполняемый файл, выберите Сборкапостроить решение в строке меню.

Запуск приложения

Запуск приложения

  1. Убедитесь в том, что проект MathClient выбран в качестве проекта по умолчанию. Чтобы выбрать его, в обозревателе решений откройте контекстное меню проекта MathClient и выберите команду Назначить запускаемым проектом.

  2. Чтобы запустить проект, в строке меню выберите ОтладкаЗапуск без отладки. Выходные данные должны выглядеть примерно так:

    a + b = 106.4
    a - b = -91.6
    a * b = 732.6
    a / b = 0.0747475
    

См. также

Пошаговое руководство: Создание и использование библиотеки DLL (C++)
Классические приложения (Visual C++)