我正在尝试使用GCC学习Linux上的共享库概念。因此,我创建了一个简单的库。
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
。现在我正在编写一个客户端,以便在同一目录中使用这个库。
< p > 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
有人能帮我找出我在这里做错了什么吗?
-soname,libmytest.so.1
? - codaddict