动态库的问题

最近遇到个问题,我们的项目中需要通过c程序读取oracle的数据,在linux下oracle有两个makefile(demo_proc.mk和env_proc.mk),比如通过oracle的工具将其sql语言编为.c文件,然后调用make -f demo_proc.mk OBJS=“a.o” EXE=a build(其实就是调用demo_proc.mk这个makefile)就可以生成可执行文件a,可是我现在想将它生成一个动态链接库,这样就可以链接到其他项目中,于是我在以上命令的输出语句中将-o a 改为-shared -o liba.so,链接成功。以为大功告成,可是如果将它链接到其他项目中,如果其他项目的程序调用这个库中函数,就会出链接错误,说这个函数未定义,这是怎么回事呢?请大侠出手相助。

在编绎你的程序时,要链接你生成的那个 liba.so.

qcc -o myprogram myprogram.c -l/full/path/liba.so

我就是这么做的,可是不行,老是说函数未定义,后来我改成将它做成liba.a,然后用qcc -o myproc myproc.c liba.a 就可以了,这是为什么呢?