2016-04-07 8 views
1

g ++ 4.7.2を使用して、むしろNEW ubuntoディストリビューション(カーネル3.2.0-53仮想)でコンパイルされたアプリケーションがあります。コンパイルが完了した後(そしてこのマシンで動作する)、私はOLD Debian 4ディストリビューション(カーネル2.6.34.10)に製品を持っていきます。私は現在、配布を変更できません。私は、アプリケーションを実行して取得しようとしている:LD_PRELOADをロードする際の浮動小数点例外新規および異なるディストリビューションからのlibstdC++。so.6およびlibc.so.6

ビン/ MY_APP:/usr/lib/libstdc++.so.6:(ビン/ MY_APPで必要とされる)が見つからないバージョンGLIBCXX_3.4.11' not found (required by Bin/MY_APP) Bin/MY_APP: /usr/lib/libstdc++.so.6: version GLIBCXX_3.4.15' ビン/ MY_APP:/lib/tls/libc.so.6:バージョンGLIBC_2.15' not found (required by Bin/MY_APP) Bin/MY_APP: /lib/tls/libc.so.6: version GLIBC_2.11 'が見つかりません(Bin/MY_APPが必要) Bin/MY_APP:/lib/tls/libc.so.6:バージョンGLIBC_2.4' not found (required by Bin/MY_APP) Bin/MY_APP: /lib/tls/libc.so.6: version GLIBC_2.12'見つからない(ビン/ MY_APPで必要) ビン/ MY_APP:/lib/tls/libc.so.6:バージョン `GLIBC_2.7' が見つかりません(ビン/ MY_APPで必要)

私が解決しようとしました問題は、とmachinから取った。E Iは、アプリケーション(NEW ubunto)のlibstdC++ so.6 & libc.so.6とをコンパイルして、/ usr/libに/ MY_APP_LIB /上に置くが、私は実行すると:

のenv LD_PRELOAD =は/ usr/libが/MY_APP_LIB/libstdc++.so.6:/usr/lib/MY_APP_LIB/libc.so.6は/ opt/MY_APP/MY_appp

私が取得:

浮動小数点例外

のenv LD_PRELOAD =は/ usr/libに/ MY_APP_LIB /にlibstdC++ so.6::私はLSまたは任意のLinuxのコマンドを実行した場合でも/usr/lib/MY_APP_LIB/libc.so.6 LSを

Iが、/ usr/libに/ MY_APP_LIB同じ結果にLD_LIBRARY_PATHを指すようにしようとすると

は、私はまた、「浮動小数点例外」コースの

を取得します。

dmesgのショー:

プロセス394(MY_APP)はRLIMIT_COREコア プロセス422(LS)を中止0 に設定されているRLIMIT_CORE私が解決できる方法コア

を中止0 に設定されていますこの?

答えて

0

この問題は、libc.so.6ライブラリを変更したために発生することがあります。単純な解決策では、LD_PRELOADフラグを前のlibc.so.6パスに設定しようとすることができます。例えば、

export LD_PRELOAD=/lib/libc.so.6:$LD_PRELOAD 
ldconfig 
関連する問題