cc1:加载共享库时出错:libmpc.so.2:无法打开共享对象文件:没有这样的文件或目录

时间:2013-10-28 00:31:31

标签: cross-compiling

我在Ubuntu 13.10(64位)的主文件夹中有一个交叉编译器。我在页面底部下载了here,其中显示了“Prebuilt Toolchains”。当我尝试编译某些东西时,它给了我这个:

cc1: error while loading shared libraries: libmpc.so.2: cannot open shared object file: No such file or directory

稍微晃眼后,我发现this。我尝试了作者写的命令进入;但他们不会帮助我,因为我在家庭词典中使用交叉编译器时遇到了这个问题,而不是系统编译器。有人可以帮忙吗?

编辑:以下是我尝试交叉编译的文件:

void print(char *message, int line,int ch){
     char *vm=(char *)0xb8000;
     int i=(line*80*2);
     i=i+(ch*2);
     while(*message!=0){
     if (*message=='\n'){line++;
     i=(line*80*2);}
     else {vm[i]=*message;
     i++;
     vm[i]=0x07;
     i++;} *message++;}}

void kernel_main(){
print("Hello!\nHow do you like my kernel?",0,0);}

我还有一个用AT& T语法编写的汇编文件,它调用kernel_main()。

4 个答案:

答案 0 :(得分:10)

发出以下命令后,我的错误消失了:

export LD_LIBRARY_PATH="/usr/local/lib"
sudo ldconfig

ldconfig是神奇的。

答案 1 :(得分:2)

你能在/ usr / lib或/ usr / lib64中找到libmpc.so.3吗?如果你发现它或同样的东西,你需要用libmpc.so.2文件替换它。该文件可以在不同的Linux版本中找到。

答案 2 :(得分:1)

libmpc的第2版(即libmpc.2.dynlib)是从源代码的0.7 - 0.9版本构建的(在www.multiprecision.org找到下载档案)。早于0.9的版本似乎与较新版本的GMP不兼容,因此我首先尝试构建该版本。在安装gcc 4.8,gmp和mpfr之后,我能够在我的OsX El Capitan系统上构建和使用0.9:

recoverWith

然后在mpc-0.9目录中:

brew tap homebrew/versions
brew install gcc48
brew install gmp
brew install mpfr

答案 3 :(得分:1)

我解决了cc1: error while loading shared libraries: libmpc.so.2如下:

通过repo安装libmpc3并制作符号链接(脏方法,但有效):

sudo apt-get install libmpc*

或(如果是i386的工具链):

sudo apt-get install libmpc*:i386

/usr/lib/i386-linux-gnu中为i386或在/usr/lib/x86_64-linux-gnu中为amd64:

sudo ln -s libmpc.so.3.0.0 libmpc.so.2