Date: 2018.11.5
1、前言
在工程实现中,通常低层库采用动态库或静态库的形式,对于静态库,其中的函数符号是分段存放的,并且相对于每个段开始,地址都是绝对的;而动态库中的函数符号是全部存放在一起的,在链接时,可能需要重定位导致修改其中的函数地址。比如对于静态库进行解包并重新编译成动态库,这个时候就需要在编译.o文件时,加上-PIC,用于生成位置无关的代码。
2、关于编译选项-fPIC
https://en.wikipedia.org/wiki/Position-independent_code
3、libxxx.so: has text relocations
https://stackoverflow.com/questions/32346402/libavcodec-so-has-text-relocations/3260997