Статическая библиотека – это грубо говоря объектный файл (или несколько скомпилированных файлов собранных в этом файле определенным образом).

Она подключается на этапе компиляции проекта использующего статическую библиотеку и «внедряется» в исполняемый файл. После компиляции мы получаем исполняемый файл, который не будет зависеть от статической библиотеки («.lib») и этот файл (статическую библиотеку) вообще можно удалить.

В коде использовать механизм подключения статической библиотеки можно несколькими способами:

 

1)

1
2
#include “TestDLL.h”
#pragma comment (lib, “d:\\TestDll.lib”)

 

2)

просто добавить файл “.lib” к проекту и добавить в код

1
#include “TestDLL.h”

 

3)

указать прямую зависимость проекта от проекта библиотеки (если “Solution” включает в себя и основной проект и проект по созданию статической библиотеки).

“Project->Project Dependencies…”, выбрать проект и указать, от какого проекта он зависит (проект по созданию статической библиотеки).

 

Рассмотрим создание более универсального и более кросс-платформенного способа использования статической библиотеки — 1 способ. Создадим проект

“File->Add->New Project->Win32 Console Application”

 

 

“Правой кнопкой мыши на проекте->Add->New Item->Code->Header File (.cpp)”

 

 

Содержимое файла:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "StaticLibrary.h"
#include <iostream>
 
using namespace std;
 
// Linking the library
#pragma comment (lib, "StaticLibrary.lib")
 
int main(int argc, char* argv[])
{
    cout<<"Static linkage example program!"<<endl;
 
    cout<<"Calculated value: "<<ADD(100.567, 194.6)<<endl;
 
    cout<<"Press any key for exit!"<<endl;
 
    getchar();
 
    return 0;
}

 

Пришло время добавить существующую статическую библиотеку. Мы с Вами уже собрали её в предыдущем посте. Скачиваем библиотеку и распаковываем ее в корень нашего нового проекта.

В результате, файловая структура проекта должна выглядеть следующим образом:

 

 

Все готово! Запускаем проекта на билд. Всего то и делов!)

 

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

 

Загрузка

Скачать исходные файлы проекта