2017-02-28 10 views
0

新しくビルドされたGLIBCを別のマシンからどのように使用できるかについての質問があります。インストールされている新しいglibcを再利用するためのGlibc設定フラグ

私は、malloc関数のコードを変更してから、glibcの のローカルバージョンをコンパイル:私の接頭辞は/家であるので、1/glibcの/ puzzlebox/lib32が/、/ /ホーム/ 1/glibcの/ puzzlebox/

Configure:**/eglibc-2.15/configure --prefix=/home/1/glibc/puzzlebox/lib32/ --host=i686-linux-gnu --build=i686-linux-gnu CC="gcc -m32 -g -ggdb -DMALLOC_DEBUG=1 -U__i686" CXX="g++ -m32 -g -ggdb -DMALLOC_DEBUG=1 -U __i686" CFLAGS="-O2 -march=i686 -U_FORTIFY_SOURCE -fno-stack-protector" CXXFLAGS="-O2 -march=i686 -U_FORTIFY_SOURCE -fno-stack-protector" 

Make and install**: make clean;make;make install 

次のディレクトリがなどが含まLIBのlibexec sbinにシェア

は、今私は、コピーライブラリファイルは/ home/1/glibcの/ puzzlebox/lib32が/ libに//puzzlebox/lib32が/

ビン/ホーム/ 1/glibcの下に作成されています*別のリポジトリ/ home/2/gliへコンパイルするとき、BC/puzzlebox/lib32が/ libに

とは/ puzzlebox/lib32が/ libに/ *ファイル

しかし、私は次のエラーを取得しています/ホーム/ 2/glibcのからライブラリファイルを使用するために私のgccを指摘しました

ld: cannot find /home/1/glibc/puzzlebox/lib32/lib/libc.so.6 inside 
ld: cannot find /home/1/glibc/puzzlebox/lib32/lib/libc_nonshared.a inside 
ld: cannot find /home/1/glibc/puzzlebox/lib32/lib/ld-linux.so.2 inside 
collect2: error: ld returned 1 exit status 

から私は/ホーム/ 2リポジトリ上のcompiliccけど、私のglibcが/home/1/glibc/puzzlebox/lib32/lib/libc.so.6

が原因でこれは必要です静的リンク?どのようにこれを克服することができますか?どのように私は各リポジトリで再構築せずにリポジトリ間で使用できるglibcをビルドできますか?私はすでに既存のglibcを上書きしたくないので、/ usrとして接頭辞を使用してください。

お勧めします!前もって感謝します!!

答えて

1

これは静的リンクのためですか?

号は、最も可能性の高い理由は、(リンカスクリプトであり、すなわち、テキストファイル)/home/2/glibc/puzzlebox/lib32/lib/libc.soそれに/home/1/glibc/puzzlebox/lib32/lib/libc.so.6等を有することです。

あなたは、そのファイルを編集することができますが、本当にあなたはは、あなたがそれをインストールする場所であることない限り--prefix=/fooでGLIBCをコンパイルしてはいけません。

+0

ありがとう、私は正確にインストールする必要がある場所へのパスを変更しました...細かい作業... – Clobbered

関連する問題