OpenOffice編譯時有時會自己生成一些系統自帶動態庫,而不是直接用系統提供的動態庫。因此產生問題

問題:OpenOffice編譯時有時會自動生成一些動態庫,用於打包。而不是直接用系統提供的動態庫。有時候會出現如下類似問題:
/bin/rpm: /home/code/OpenOffice/solver/310/unxlngi6.pro/lib/libnss3.so: version `NSS_3.11.2' not found (required by /usr/lib/librpmio.so.1)
/bin/rpm: /home/code/OpenOffice/solver/310/unxlngi6.pro/lib/libnss3.so: version `NSS_3.10' not found (required by /usr/lib/librpmio.so.1)

問題原因與解決:
用"ldd /bin/rpm"命令查看依賴關係,結果如下:
......
 libelf.so.1 => /usr/lib/libelf.so.1 (0x00b4e000)
 libnss3.so => /home/code/OpenOffice/solver/310/unxlngi6.pro/lib/libnss3.so (0x008e6000)
 libpopt.so.0 => /lib/libpopt.so.0 (0x05d84000)
 ......
可以看出libnss3.so使用了我們從源碼中自己編譯出來的動態庫,而不是跟其它動態庫一樣使用系統的。由此產生諸如版本不匹配的問題。
解決方法有兩種:
a)在configure中加上"--with-system-openssl"讓編譯器默認使用系統自帶的動態庫;
b)如果還不行就在出錯時將/home/code/OpenOffice/solver/310/unxlngi6.pro/lib/libnss3.so庫刪掉,那麼就會自動去打包系統自帶的那個動態庫。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章