【发布时间】:2010-11-14 15:28:06
【问题描述】:
我正在尝试使用 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。现在我正在编写一个客户端来使用同一目录中的这个库。
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
谁能帮我找出我在这里做错了什么?
【问题讨论】:
标签: c gcc shared-libraries