2012-01-22 8 views
1

amd64マシンでブースト1.48を構築しようとしていますが、再配置エラーのために共有ライブラリが構築されていません。私は-fPICのためにこれを仮定しましたが、それがその問題を解決できませんでした。は、ブースト1.48で共有ライブラリを構築できませんでした。

具体的には、ここに

./b2 

は/ usr/binに/ ldは、トランクからの後押しで、私が得るものです:/usr/lib/gcc/x86_64-linux-gnu/4.4.5 /libstdc++.a(codecvt.o):共有オブジェクトを作成するときに、 `std :: codecvtのvtable 'に対するR_X86_64_32Sの再配置は使用できません。 -fPIC /usr/lib/gcc/x86_64-linux-gnu/4.4.5/libstdc++.aで再コンパイル:シンボルを読み取ることができませんでした:悪い値 collect2はを:ldは

1つの終了ステータスを返し、私はまた、これらの

を試してみました
./bjam -d2 
./bjam address-model=64 cxxflags=-fPIC 

説明したように/ここ

http://boost.2283326.n4.nabble.com/fPIC-option-for-boost-td3176976.html

議論が助けにはなりませんでした。私はboostrap.shで設定した共有ライブラリをビルドすることができませんでした。

答えて

0

私は、標準のdebian squeezeインストールでmosh-1.2.2をビルドしようとして同様の問題がありました。以下は私のために働いた:

# cd /usr/lib/gcc/x86_64-linux-gnu/4.4.5 
# rm libstdc++.so 
# ln -s ../../../x86_64-linux-gnu/libstdc++.so.6 libstdc++.so 

既存のシンボリックリンクが存在しないファイルを指した、より詳細に説明するために:

# cd /usr/lib/gcc/x86_64-linux-gnu/4.4.5 
# ls -l libstdc++.so 
.. 
lrwxrwxrwx 1 root root  23 May 3 2011 libstdc++.so -> ../../../libstdc++.so.6 
.. 

私は、正しいファイルの場所

# dpkg -S 'libstdc' 
.. 
libstdc++6: /usr/lib/x86_64-linux-gnu/libstdc++.so.6 
.. 
を設置しました

その後、最初のコードセグメントの説明に従って、シンボリックリンクを修復します。

は、私はコンパイル時になっていたエラー:この特定のDebianのスクイズサーバーが壊れたか

make[3]: *** [mosh-client] Error 1 
make[2]: *** [all-recursive] Error 1 
make[1]: *** [all-recursive] Error 1 
make: *** [all] Error 2 
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/4.4.5/libstdc++.a(functexcept.o): relocation R_X86_64_32 against `std::bad_typeid::~bad_typeid()' can not be used when making a shared object; recompile with -fPIC 
/usr/lib/gcc/x86_64-linux-gnu/4.4.5/libstdc++.a: could not read symbols: Bad value 

ませんアイデア。私は他のスクイズシステムで問題なくコンパイルしています。

関連する問題