解决在编译过程中需要链接静态库的问题

王朝other·作者佚名  2008-06-01
窄屏简体版  字體: |||超大  

这篇文章介绍通过链接器的选项,在应用的迁移过程中指定链接库的静态版本

在应用程序移植的过程中,有时会碰到第三方的动态库所依靠的符号在操作系统的 glibc 里不再支持的情况,对于这种情况可以用链接器的选项 '-Bstatic' 指定链接时链接库的静态版本。

对于下面这个例子:

执行make的时候,显示如下

cc -o FOOPro foosql.o foodblib.o fooodbc.o foofun.o main.o ../unixos/version.o

-L/home/foo/lib -lfunc -lalarm -L/home/sybase/OCS-12_5/lib -lsybdb -lm

/home/sybase/OCS-12_5/lib/libsybdb.so: undefined reference to `dladdr'

collect2: ld returned 1 exit status

可以用如下命令指定链接静态库 libsybdb.a

cc -o FOOPro foosql.o foodblib.o fooodbc.o foofun.o main.o ../unixos/version.o

-L/home/foo/lib -lfunc -lalarm -L/home/sybase/OCS-12_5/lib -Wl,-Bstatic -lsybdb -Wl,-Bdynamic -lm

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航