我已经使用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