分类: C/C++
2010-09-26 14:38:30
今天在编译动态库时遇到问题一个错误:
Ld:致命的:重定位错误:R_SPARC_H44:
编译的过程,首先同事提供一个静态库处理基本事务,然后我需要在静态库的基础上编译一个动态库。编译该动态库时,出现上面的错误。根据错误,查询solaris10编译指南,说明abs44不适用于动态库,所以肯定相应静态库使用了不需要的abs44的方式进行编译。不过让同事去查,却没有发现代码里面存在相关的编译参数,估计系统编译器使用了该值作为默认参数
查了手册,上面说,“如果遇到奇怪的链接错误,则可能需要使用-Kpic或-KPIC 编译部分对象”。让同事在编译时增加了参数-Kpic,生成位置独立的代码,编译随即通过。