Раздел «Язык Си».ComplexLib:

Создание библиотек. Библиотека для работы с комплексными числами.

Создание библиотеки

Библиотека у нас будет иметь два исходных файла: complex.h и complex.cpp

/*
  complex.h
*/
typedef struct {
    double a,b;
} complex_t;

complex_t mul(complex_t x, complex_t y);

/*
   complex.c
*/
#include "complex.h"
complex_t mul(complex_t x, complex_t y)
{
    complex t;
    t.a = x.a * y.a - x.b * y.b;
    t.b = x.a * y.b + x.b * y.a; 
    return t;
}

Пример использования библиотеки

Теперь несложно использовать эту библиотеку. Для этого нужно:

/*
   test_complex.c
*/
#include <stdio.h>
#include <complex.h>

int main()
{
    complex_t x = {1,2};
    complex_t y = {3,4};
    complex_t z = mul(x, y);
    printf ("z = (%lf, %lf)\n", z.a, z.b );
    return 0;
}

Создание и использование библиотек в Gnu C

Подключение библиотеки в виде исходников

Есть простой способ подключения библиотеки функций прямо в виде исходников:

$ gcc test_complex.c complex.c -o test_complex   

В итоге получается запускаемый файл test_complex.

Подключение библиотеки в виде динамически загружаемой библиотеки

$ gcc -shared complex.c -o libcomplex.so           # создание динамически загружаемой библиотеки  
$ gcc test_complex.c -L. -lcomplex -o test_complex # компиляция тестовой программы
$ export LDD_LIBRARY_PATH=.; ./test_complex        # запуск тестовой программы

Подключение библиотеки в виде статически загружаемой библиотеки

Для компилятора Gnu C команды создания статически подключаемой библиотеки и подключения её к проекту выглядят следующим образом

$ gcc -с complex.c -o libcomplex.a           # создание динамически подключаемой библиотеки  
$ gcc test_complex.c -L. -lcomplex -o test_complex # компиляция тестовой программы
$ ./test_complex        # запуск тестовой программы

Задачи

-- ArtemVoroztsov - 17 Nov 2004