WorksheetsДинамические библиотеки
Total questions: 10
Worksheet time: 6mins
Укажите признаки динамической библиотеки
Исполняемый файл, с динамической библиотекой больше, чем со статической библиотекой
Исполняемый файл, с динамической библиотекой меньше, чем со статической библиотекой
Связывание происходит на этапе компиляции
Связывание происходит на этапе выполнения программы
Можно обновлять библиотеку, не изменяя код программ, которые её используют
Name Mangling
Это процесс преобразования имен функций и переменных в С++ в объектном файле для последующего связывания линковщиком
Это процесс преобразования имён функций и переменных в С++ только для перегруженных функций, для возможности их отличать при вызове
Это популярная рок группа, имена участников, которой изменены
Первый раз слышу
ʕ ᵔᴥᵔ ʔ
Выберите имя функции в объектном файле
скомпилированном в стиле С++ (c применением Name mangling)
foo(int, double)
__Z3fooid
void foo(int, double)
void (*)(int, double)
В каком стиле следует писать библиотеки,
чтобы они были совместимы с различными языками программирования
С
С++
Нет разницы
Как вы думаете, какие сущности могут быть подвержены Name mangling в С++?
Иными словами, какие имена функций и переменных будут преобразованы для линковки.
(все эти сущности находятся в одной единице трансляции)
int x;
namespace MyNamespace {
static int x;
...
}
void foo() {
static int x;
...
}
class MyClass {
public:
static int x;
...
};
struct MyStruct {
static int x;
...
};
Какой командой можно прочитать символы
из объектного файла main.o
Как нужно оформить функции и переменные в библиотеке,
для именования символов компилятором в стиле С
exit "C" {
void myFunction();
int myVariable;
}
extern "C" {
void myFunction();
int myVariable;
}
exprompt "C" {
void myFunction();
int myVariable;
}
express "C" {
void myFunction();
int myVariable;
}
Выберите правильные варианты названия заголовочного файла для
загрузки функций из динамической библиотеки в run-time ?
<dlfcn.h>
<dlfcn.h>
<dlfcn.h>
<dlfcn.h>
Что делает функция void dlopen(const char filename, int flag)
объявленная в <dlfcn.h>
находит библиотеку по указанному пути и подготавливает к использованию, если по указанному пути библиотеки нет, выдаёт ошибку
загружает функцию из библиотеки
открывает находит библиотеку по указанному пути и подготавливает к использованию, если по указанному пути библиотеки нет продолжает искать по другим (определенным) путям
открывает находит библиотеку по указанному пути и подготавливает к использованию, в соответствии с переданным флагом, если по указанному пути библиотеки нет продолжает искать по другим (определенным) путям. Также может выдать ошибку в случае, если есть неопределенные символы в библиотеке, при определенном значении фллага.
Выберите функцию, которая загружает конкретную библиотечную функцию ?
void dlopen
(const char filename, int flag);
void dlsym
(void handle, char *symbol);
void dlclose();
void dlerror();
