Я пытаюсь изучить общие библиотеки в linux, используя GCC.Итак, я создал простую библиотеку.
library.c
int foo(void) {
return 10;
}
Это скомпилировано с использованием,
cc -fPIC -g -c library.c
cc -shared -fPIC -Wl,-soname,libmytest.so.1 -o libmytest.so.1.0.1 library.o -lc
Он создал файлlibmytest.so.1.0.1
в текущем каталоге.Сейчас я пишу клиент для использования этой библиотеки в том же каталоге.
client.c
#include <stdio.h>
extern int foo(void);
int main()
{
int a = foo();
printf("a is %d", a);
return 0;
}
компиляция с использованием
cc client.c -o client -lmytest
, но это завершается сообщением
/usr/bin/ld: cannot find -lmytest
collect2: ld returned 1 exit status
Может ли кто-нибудь помочь мне выяснить, что я здесь делаю не так?