Курсовая работа: Разработка статических и динамических библиотек на языке программирования С/C++ в операционных системах UNIX
return 1;
};
//загружаем из библиотеки требуемую процедуру
powerfunc = dlsym(ext_library, argv[1]);
value=3.0;
//выводим результат работы процедуры
printf("%s(%f) = %f\n",argv[1],value,(*powerfunc)(value));
//закрываем библиотеку
dlclose(ext_library);
};
Код главной программы готов. Требуется его откомпилировать с использованием библиотеки dl :
olya:~# gcc main.c -o main -ldl
Получим программный файл main, который можно тестировать. Наша программа должна возводить значение 3.0 в требуемую нами степень, которая задается названием функции. Давайте попробуем:
olya:~# ./main power2
power2(3.000000) = 9.000000
olya:~# ./main power3
power3(3.000000) = 27.000000
olya:~# ./main power4
power4(3.000000) = 81.000000
olya:~#
Мы используем функции, зная лишь их название. Представьте открывающиеся возможности для программ, на основе этого метода можно создавать плагины для программ, модернизировать какие-то части, добавлять новые возможности и многое другое.
4.2 Создание динамической библиотеки для решения системы линейных уравнений
В качестве примера использования динамических библиотек напишем программу для решения системы линейных уравнений.
Пусть система имеет вид:
a11*x1+a12*x2=b1;
a21*x1+a22*x2=b2;
Решение этой системы находим через обратную матрицу A-1 .
A*X=B