2014年9月9日 星期二

Linux 無法開啟 libmpfr.so.1 或 libgmp.so.3 的錯誤呢?

export LD_LIBRARY_PATH=/opt/toolchains/toolchain_gnueabi-4.4.0_ARMv5TE/usr/lib

==
網路上也有人遇到相關問題:
souirce :

當編譯 DMA-6410XP、DMA-6410 及 DMA-6410L 平台的 Linux Kernel 時,為什麼會出現無法開啟 libmpfr.so.1 或 libgmp.so.3 的錯誤呢? 
答:錯誤狀況一:
/usr/local/arm/4.3.1-eabi-armv6/usr/bin-ccache/../libexec/gcc/arm-samsung-linux-gnueabi/4.3.1/cc1: error while loading shared libraries: libmpfr.so.1: cannot open shared object file: No such file or directory
make[1]: *** [kernel/bounds.s] Error 1
make: *** [prepare0] Error 2
錯誤狀況二:
/usr/local/arm/4.3.1-eabi-armv6/usr/bin-ccache/../libexec/gcc/arm-samsung-linux-gnueabi/4.3.1/cc1: error while loading shared libraries: libgmp.so.3: cannot open shared object file: No such file or directory
make[1]: *** [kernel/bounds.s] Error 1
make: *** [prepare0] Error 2
Ans: 編譯 DMA-6410XP 等平台的 Linux Kernel 時使用了平台光碟裡的 4.3.1-eabi-armv6 這個編譯器,當我們在 Ubuntu 9.04 及 Ubuntu 10.04 LTS 這兩個版本的 Ubuntu 上直接使用並沒有任何問題。
但,若您使用更新版本的 Ubuntu,或是使用了 64 位元的 Ubuntu,那麼在使用 4.3.1-eabi-armv6 這個編譯器時,就可能會遇到這個錯誤。


解決的方法是設定 LD_LIBRARY_PATH 變數,設定如下:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/arm/4.3.1-eabi-armv6/mpfr/lib \
:/usr/local/arm/4.3.1-eabi-armv6/gmp/lib \
:/usr/local/arm/4.3.1-eabi-armv6/lib
主要是利用修改 LD_LIBRARY_PATH 變數,加入 libmpfr 及 libgmp 的路徑。
DMA-210U (Cortex A8, S5PV210 系列) 


沒有留言:

張貼留言