分页: 1 / 1

动态链接库的问题

发表于 : 2009-07-17 10:25
upsuper
我自己写了一个动态链接库 libxxx.so,希望在编译程序的时候使用它。

现在我将这个动态链接库放在待编译的程序所在的目录,使用下面命令编译:

代码: 全选

gcc -L. -lxxx -o t t.c
编译通过,但编译得到的程序无法运行。在网上查找后,发现可以用下面方式执行:

代码: 全选

LD_LIBRARY_PATH=`pwd` ./t
然后,我想把这个动态链接库静态编译入程序,因此使用下面命令:

代码: 全选

gcc -static -L. -lxxx -o t t.c
此时却提示

代码: 全选

/usr/bin/ld: cannot find -lxxx
collect2: ld 返回 1
前面加上 LD_LIBRARY_PATH 或 LIBRARY_PATH 变量也没有用……

经过实验,如果将 libxxx.so 拷入 /usr/lib 就可以使用了。
那么我现在想问如何在不需要动用 root 权限的情况下,如何才能将我的动态链接库(不要转变成静态链接库)静态编译入程序?

Re: 动态链接库的问题

发表于 : 2009-07-17 10:31
O_O_BOT
irc <fvw> say: upsuper: 你本来的库是动态的哦 这么静态

Re: 动态链接库的问题

发表于 : 2009-07-17 12:27
upsuper
没事了……已解决……

Re: 动态链接库的问题

发表于 : 2009-07-20 14:38
heejun
你怎么可能单纯的用一个动态库就转变为静态库,这根本就是不可能的