从新发行版和不同发行版加载LD_PRELOAD libstdc++.so.6和libc.so.6时出现浮点异常



我已经使用g++4.7.2在相当新的ubunto发行版(内核3.2.0-53-virtual)上编译了应用程序。编译完成后(在这台机器上工作),我将把产品带到OLD Debian 4发行版(内核2.6.34.10)。我目前无法更改发行版。我正在尝试运行应用程序并获得:

Bin/MY_APP:/usr/lib/libstdc++.so.6:找不到版本GLIBCXX_3.4.11' not found (required by Bin/MY_APP) Bin/MY_APP: /usr/lib/libstdc++.so.6: version GLIBCXX_3.4.15'(Bin/MY_APP需要)Bin/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'(Bin/MY_APP需要)Bin/MY_APP:/lib/tls/libc.so.6:未找到版本"GLIBC_2.7'"(Bin/MY_APP需要)

我试图解决这个问题,并从我编译的机器上获得了应用程序(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

我得到:

浮点异常

即使我运行ls或任何linux命令:

env LD_PRELOAD=/usr/lib/MY_APP_lib/libstdc++.so.6:/usr/lib/MY_APP_lib/libc.so.6 ls

我得到了"浮点异常"

当然,当我尝试将LD_LIBRARY_PATH指向/usr/lib/MY_APP_lib相同的结果时也是如此。

dmesg显示:

进程394(MY_APP)的RLIMIT_CORE设置为0中止核心进程422(ls)的RLIMIT_CORE设置为0中止核心

我该如何解决这个问题?

这个问题可能是因为您更改了libc.so.6库。简单的解决方案是,您可以尝试将LD_PRELOAD标志设置为其以前的libc.so.6路径。对于前

export LD_PRELOAD=/lib/libc.so.6:$LD_PRELOAD
ldconfig

最新更新