GCC将编译版本复制到另一个主机时编译错误

问题描述:

我在我的一个Ubuntu 10.10主机上编译了gcc,并将它安装在/ c中。我可以编译C和C++程序在该主机上正常,但当I/C(其中包含斌的libexec等)复制到Ubuntu的主10.04.2我得到:GCC将编译版本复制到另一个主机时编译错误

/c/libexec/gcc/i686-pc-linux-gnu/4.5.2/cc1: error while loading shared libraries: libmpc.so.2: cannot open shared object file: No such file or directory 
编译一个简单的.c文件时

我也从源码安装并编译了gmp,mpfr和mpc(与我在10.10主机上的版本相同),但它仍然出现相同的错误。

我不是每个主机上重新编译gcc的原因是因为它花费的时间太长,并且不希望使用GCC(从构建基本)DEB附带Ubuntu的

请帮

+0

是系统规格完全相同一样?需要注意的是,预编译的二进制文件可能不适用于不同的体系结构(即x86,x86_64等) - 另外,我没有意识到Ubuntu版本的差异,但这也可能造成问题。你最好的选择是在你的第二台机器上重新编译,如果你想确保它的工作是最佳的。 – RageD 2011-03-12 04:39:09

+0

@RageD这两个主机是相同的拱:uname -m i686 – Daniel 2011-03-12 04:40:52

是否导出了LD_LIBRARY_PATH环境变量?看看这个错误,它无法找到libmpc.so.2。

尝试“找到libmpc.so.2”,如果你能找到, 出口LD_LIBRARY_PATH =

+0

是否有可能将gcc编译为静态?所以它编译后不依赖于gmp,mpfr,mpc? – Daniel 2011-03-12 04:45:41

+0

@rjoshi出口LD_LIBRARY_PATH工作!谢谢。但关于我的最后一个问题“是否有可能将gcc编译为静态的?所以在编译之后它不依赖于gmp,mpfr,mpc?”可能吗? – Daniel 2011-03-12 04:54:17

+1

@Daniel:是的,你可以通过传递完整的库路径来编译静态。当你编译时,给路径为-L/usr/local/lib/libgmp.a – rjoshi 2011-03-12 04:54:41

下面是关于如何在Ubuntu设置LD_LIBRARY_PATH一些细节: https://help.ubuntu.com/community/EnvironmentVariables#File-location%20related%20variables