使用cmake生成動(dòng)態(tài)庫(kù)時(shí)柒竞,cmake會(huì)自動(dòng)添加-fPIC選項(xiàng)舞终。那么在Linux中編譯so废膘,是否一定要加-fPIC選項(xiàng)呢?
參考文章(我也不知道哪個(gè)是原帖):linux編譯動(dòng)態(tài)庫(kù)之fPIC - 知乎 (zhihu.com)
gcc-5 + ubuntu16
image.png
測(cè)試結(jié)果與文章描述一致般又,調(diào)用外部函數(shù)不加-fPIC會(huì)出錯(cuò)彼绷。
gcc-5 + ubuntu18
image.png
然而在ubuntu18里,即使不加-fPIC也沒有出錯(cuò)茴迁。
所以寄悯,是不是在ubuntu18里,-fPIC已經(jīng)是一個(gè)默認(rèn)選項(xiàng)了呢堕义?
g++-5 + ubuntu18
image.png
然而猜旬,這個(gè)例子反證了上述猜測(cè)。
gcc-5 + ubuntu18倦卖,示例2
image.png
這個(gè)例子證明了洒擦,-fPIC在ubuntu18里并不是默認(rèn)選項(xiàng)。