web-dev-qa-db-ja.com

cc1:共有ライブラリのロード中にエラーが発生しました:libmpc.so.2:共有オブジェクトファイルを開くことができません:そのようなファイルまたはディレクトリはありません

Ubuntu 13.10(64ビット)のホームフォルダーにクロスコンパイラーがあります。ダウンロードしました ここ ページの下部に「ビルド済みツールチェーン」と表示されています。私が何かをコンパイルしようとすると、それは私にこれを与えます:

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

少しゴーグルした後、私は this を見つけました。著者が書いたコマンドを試してみました。しかし、システムコンパイラではなく、ホームディクショナリのクロスコンパイラでこの問題が発生しているため、これらは役に立ちません。誰か助けてもらえますか?

EDIT:これが私がクロスコンパイルしようとしているファイルです:

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);}

また、kernel_main()を呼び出すAT&T構文で記述されたアセンブリファイルがあります。

11
Isaac D. Cohen

次のコマンドを発行した後、エラーが消えました。

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

ldconfigは魔法です。

13
Kiet

/ usr/libまたは/ usr/lib64にlibmpc.so.3がありますか?それまたは同じものを見つけた場合は、libmpc.so.2ファイルに置き換える必要があります。そのファイルは、より低いLinuxバージョンで見つけることができます。

4
Luan Vu

解決しましたcc1: error while loading shared libraries: libmpc.so.2 次のように:

インストールlibmpc3リポジトリ経由でシンボリックリンクを作成します(ダーティメソッドですが、機能しました):

Sudo apt-get install libmpc*

または(i386のツールチェーンの場合):

Sudo apt-get install libmpc*:i386

/usr/lib/i386-linux-gnui386の場合または/usr/lib/x86_64-linux-gnu AMD64の場合:

Sudo ln -s libmpc.so.3.0.0 libmpc.so.2 
3

libmpcのバージョン2(つまり、libmpc.2.dynlib)は、ソースのバージョン0.7〜0.9からビルドされます(ダウンロードアーカイブは www.multiprecision.org にあります)。 0.9より前のバージョンは、新しいバージョンの [〜#〜] gmp [〜#〜] と互換性がないように見えるので、最初にそれをビルドしてみます。 gcc 4.8、gmp、およびmpfrをインストールした後、OsX ElCapitanシステムで0.9をビルドして使用することができました。

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

次に、mpc-0.9ディレクトリで:

./configure  --with-gmp=/usr/local/Cellar/gmp/6.1.0 --with-mpfr=/usr/local/Cellar/mpfr/3.1.3
make
Sudo make install
2
32bits