Как я понимаю Динамическая загрузка означает загрузку библиотеки (или любого другого двоичного файла) в память во время загрузки или во время выполнения. поэтому в программе ниже, когда dlopen(), называемый динамическим загрузчиком, появится в картинке, и он загрузит lib в память, если библиотека уже не загружена.В чем разница между динамическим связыванием и динамической нагрузкой
Динамическое связывание относится к связыванию, которое выполняется во время загрузки или во время выполнения. и он решает внешние ссылки. Итак, в программе ниже функция dlsym() запросит функцию косинуса, и динамическая компоновка появится в изображении, и символы будут разрешены.
int main(int argc, char **argv) {
void *handle;
double (*cosine)(double);
char *error;
handle = dlopen ("/lib/libm.so.6", RTLD_LAZY);
if (!handle) {
fputs (dlerror(), stderr);
exit(1);
}
cosine = dlsym(handle, "cos");
if ((error = dlerror()) != NULL) {
fputs(error, stderr);
exit(1);
}
согласно моим знаниям Команда ldd используется для печати зависимостей разделяемой библиотеки, поэтому доступ к общей библиотеке достигается путем динамической компоновки, поэтому вся необходимая общая библиотека, такая как ** libc **, определена и разрешена до того, как программа начнет выполнение, и это называется динамической связью am i справа? – gauramit87