微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

指定在Linux上启动可执行文件时要使用的dynamic链接器/加载器

我有一个奇怪的Linux系统,其中大部分软件是针对Glibc和其他针对uClibc的其他软件编译的。

由于Linux是一个标准的发行版,当我启动并执行标准的dynamic连接器时,glibc会调用(/lib/ld.so.1)。

我正在寻找一种方法来指定dynamic加载器之前启动任何可执行文件,所以当我想要运行的软件是针对uClibc编译我可以定义启动机制使用uClibcdynamic加载器(/lib/ld-uClibc.so.0 )。

有任何想法吗?

在Linux上的C + +开发 – 我在哪里开始?

将.o(C目标文件链接到Linux上的C ++文件/项目

当使用libcool和gcov时,“DSO引用了隐藏的符号”atexit“

将apache请求转发给c ++程序

Ubuntu 11.10:GCC / G ++不会链接

Windows中的另一个GSL链接错误

将符号链接到Linux上的固定地址

dynamic与静态DLL链接是不同的

如何使用MysqL的连接器

链接到gstreamer库的问题ubuntu 11.10

我正在寻找一种方法来指定动态加载器之前启动任何可执行文件,所以当我想要运行的软件是针对uClibc

你应该指定正确的动态加载器, 而建立对uClibc ,使用链接器--dynamic-linker参数。 例如

gcc -nostdlib -Wl,--dynamic-linker=/lib/ld-uClibc.so.0 /lib/uClibc-crt1.o main.o -L/path/to/uClibc -lc

在我看来,如果你需要设置PT_INTERP指向一个替代解释器,反过来喜欢你的首选ld.so设备。 见精灵的手册页(5)。 看到readelf倾倒你有什么看到; 你正试图改变ld-linux-xxx.so.x到你想出的任何东西。

实际上,在我看来,你只是想指出你的替代ld.so作为国际刑警组织。

调用可执行文件之前,只需将动态链接程序的完整路径,例如:

/home/x20/tools/codescape-2016.05-3-mips-mti-linux-gnu/2016.05-03/sysroot/mipsel-r2-hard/lib64/ld-2.20.so out.gn/mipsel/d8

d8是我们要执行的二进制文件,ld-2.20.so是动态连接器

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐