Опубликован: 14.12.2010 | Уровень: для всех | Доступ: платный

Лекция 21: Программы на языке С при использовании статически подключаемой библиотеки

< Лекция 20 || Лекция 21: 12345 || Лекция 22 >
Аннотация: В лекции ставится задача научиться создавать и применять статическую подключаемую библиотеку с помощью MS Visual Studio 2010, осуществлять компиляцию нескольких файлов, размещенных в статической библиотеке.

Теоретическая часть

Библиотека представляет собой набор функций [20.1]. Когда программа использует библиотечную функцию, редактор связей находит эту функцию и добавляет ее код в программу. Исполняемый файл содержит только те функции, которые используются программой, а не все библиотечные функции [20.1].

Статически подключаемая библиотека содержит набор уже откомпилированных объектных файлов с функциями и данными. Библиотеки целесообразно применять для хранения функций, которые могут быть использованы при создании различных программ, реализующих распространенные алгоритмы и осуществляющих поддержку и обработку распространенных структур данных.

Библиотека называется статически подключаемой, если код, содержащийся в ней, непосредственно компонуется к основной программе.

Механизм компиляции и компоновки программы на языке C требует, помимо наличия откомпилированного библиотечного модуля, присутствия заголовочных файлов ( h -файлов), содержащих объявления структур данных и прототипы функций, предоставляемых библиотекой.

Среда Visual Studio 2010 использует расширение .lib для библиотечных модулей. При создании статически подключаемой библиотеки в среде Visual Studio 2010 необходимо выполнить следующую последовательность действий.

Создать новый проект (пункты главного меню: File–New–Project ), выбрать тип проекта в списке Project types: Win32–Win32Project и задать имя проекта, например, containers. При необходимости можно указать место его расположения, используя кнопку Browse. В результате должна получиться форма, показанная на рис. 20.1.

Окно создания проекта с подключаемой библиотекой

Рис. 20.1. Окно создания проекта с подключаемой библиотекой

Далее следует нажать кнопку OK. Появится форма С заголовком "Win32 Application Wizard – containers.

На закладке Application Settings мастера создания проекта сделать следующие настройки:

  • Application type (тип приложения) установить в Static Library (статическая библиотека);
  • Снять флажок с пункта Precompiled header (прекомпилированный заголовок).

После установки настроек появится форма ( рис. 20.2), которая представляет собой пустой проект статической библиотеки.

Окно создания проекта с подключаемой библиотекой

Рис. 20.2. Окно создания проекта с подключаемой библиотекой

Для завершения настройки закладки Application Settings следует нажать кнопку Finish. Появится форма, показанная на рис. 20.3.

Окно пустого проекта для статической библиотеки

Рис. 20.3. Окно пустого проекта для статической библиотеки

Добавление файлов в проект библиотеки осуществляется стандартным образом, как и для проекта Win32 Console Application. В соответствии с рис. 20.3существующие файлы, которые будут использоваться в многофайловом проекте, могут быть подключены при установки курсора мыши на папках Header Files, Resource Files, Source Files с последующим нажатием правой клавиши и выбором пункта меню Add, а именно Existing Item.

Для подключения h -файлов, т.е. *.h, следует обратиться к папке проекта Header Files, для подключения к проекту с-файлов, т. е. *.с, использовать папку Source Files.

Выполним подключение существующих файлов stack.h / stack.c, queue.h / queue.c, реализующие в простейшем виде две важные структуры данных – стек и очередь.

Так как статическая библиотека не является исполняемой программой, а только механизмом для хранения подпрограмм, то среди функций библиотеки не должно быть функции main().

После подключения файлов получится форма, показанная на рис. 20.4, с открытой программой файла stack.h.

Окно проекта статической библиотеки с подключенными файлами

Рис. 20.4. Окно проекта статической библиотеки с подключенными файлами

До выполнения компиляции необходимо выполнить настройку проекта. Настройка параметров компилятора выполняется так же, как и для проекта Win32 Console Application. В частности, из пункта меню Project следует выбрать containers Properties (Alt+F7). После раскрытия узла Configuration Properties появится форма, показанная на рис. 20.5.

Обращение к странице свойств проекта

Рис. 20.5. Обращение к странице свойств проекта

Сначала следует обратиться к пункту General. Затем, к закладке Character Set, в которой выбрать Use Multy-Byte Character Set (как и при настройке консольного приложения).

Далее необходимо раскрыть узел С/С++, в котором следует обратиться к закладке Code Generation, затем в другой панели закладка Enable C++ Exceptions устанавливается в положение No (как и при настройке консольного приложения).

< Лекция 20 || Лекция 21: 12345 || Лекция 22 >
Мухаммадюсуф Курбонов
Мухаммадюсуф Курбонов
Александр Соболев
Александр Соболев
Россия
Артем Полутин
Артем Полутин
Россия, Саранск