动态库链接静态库
遇到要编译产生个动态库,该动态库会链接个静态库,所以想在把静态库链接进动态库中。
这个动态库(.so)链接静态库(.a)的总结 - 很实用讲解很清楚里面说,静态库所包含的目标文件,得是加-fPIC的才行。但是gcc使用---动态库链接静态库里说不用加。后者上的例子,我在本地可以复现。但是比着葫芦画瓢用在项目中,就是报错
/usr/bin/ld: ./libic.a(vp4c.o): relocation R_X86_64_PC32 against symbol `_p4bits8' can not be used when making a shared object; recompile with -fPIC
后续
还是加上-fPIC
比较好,PIC和重定位是不同的概念。
相关书籍
《深入理解计算机系统》 链接
《程序员的自我修养》