Мне нужно динамически связать созданную мной библиотеку.Я не совсем уверен, в чем проблема.Все компилируется правильно, но я всегда ловлю handle
в качестве указателя NULL
:
void *handle;
char *error;
handle = dlopen ("./hw11-lib-michaelSchilling.so", RTLD_LAZY);
//same error comes up with full path as well as './hw11...'
if(!handle){
error = dlerror();
printf("%s\n", error);
printf("Error loading library.\n");
exit(1);
}
Я не могу передать эту ошибку, и я не уверен, что может быть не так.Я почти уверен, что все правильно скомпилировал.Вот шаги компиляции, которые я использовал:
gcc -rdynamic -c hw11-lib-michaelSchilling.c -o hw11-lib-michaelSchilling.so
gcc hw11-michaelSchilling-4.c -ldl -o hw11-michaelSchilling-4
Я получаю сообщение об ошибке:
Только ET_DYN и ET_EXEC могут быть загружены.