请教在家如何做绿豆糕 Linux 下使用 LD

Linux 动态连接加载器 ld-linux用法_Linux编程_Linux公社-Linux系统门户网站
你好,游客
Linux 动态连接加载器 ld-linux用法
来源:Linux社区&
作者:Linux编辑
ld-linux有两种用法,间接调用和直接调用。
间接调用时,连接器会把ld-linux的执行路径嵌入到可执行文件中,如elf文件时,ld-linux被放在.interp段中。
直接调用时,在命令行下输入/lib/ld-linux-so.* [选项] [可执行程序] [程序参数]
ld-linux按照如下顺序搜索可执行程序需要的共享库:
1. (只针对elf文件) 可执行程序中如果有DT_RPATH或DT_RUNPATH段,则使用这两个段中指定的搜索目录。
2.使用环境变量LD_LIBRARY_PATH指定的搜索目录
3.使用/etc/ld.so.cache中的搜索目录,但如果可执行程序在连接时候添加了-z nodeflib选项,则不使用。
4.使用默认的库目录,/lib /usr/lib,如果添加了-z nodeflib,则不使用。
编译可执行程序时,可以安如下方法指定共享库的目录
gcc -Xlinker -rpath=DIR -o exe exe.c
编译完后,运行readelf -d exe可以看到如下段
0x0000000f (RPATH) Library rpath: [DIR]
相关资讯 & & &
& (05/28/:04)
& (05/27/:01)
& (05/27/:12)
& (05/27/:03)
& (05/27/:50)
& (05/27/:27)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
白手起家, 积分 19, 距离下一级还需 181 积分
论坛徽章:0
在linux下进行如下操作
ld test.o /lib/tls/libc.so.6 -o test.bin
执行该可执行程序
./test.bin
产生如下输出:/usr/lib/libc.so.1: bad ELF interpreter: 没有那个文件或目录
这是什么原因,请指教。
&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp
小富即安, 积分 2905, 距离下一级还需 2095 积分
论坛徽章:0
应该就是没有/usr/lib/libc.so.1
白手起家, 积分 19, 距离下一级还需 181 积分
论坛徽章:0
回复 #1 wangsongtianmin 的帖子
谢谢了,确实是没有libc.so.1。可是如何指定使用libc.so.6,而不是使用libc.so.1呢?
大富大贵, 积分 12018, 距离下一级还需 7982 积分
论坛徽章:0
-dynamic-linker?
白手起家, 积分 30, 距离下一级还需 170 积分
论坛徽章:0
ln -s /usr/lib/libc.so.6 /usr/lib/libc.so.1 试试
北京盛拓优讯信息技术有限公司. 版权所有 京ICP备号 北京市公安局海淀分局网监中心备案编号:22
广播电视节目制作经营许可证(京) 字第1234号
中国互联网协会会员&&联系我们:
感谢所有关心和支持过ChinaUnix的朋友们
转载本站内容请注明原作者名及出处怎样用ld链接.a文件????????????【linux吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:180,141贴子:
怎样用ld链接.a文件????????????收藏
快试试吧,可以对自己使用挽尊卡咯~◆◆
linux培训选择达内,资深10年linux讲师悉心传授,linux项目实战+设备实操+名企内推.达内linux云计算培训将网络工程与linux运维相结合专门培养高端linux复合型人才.
clooo@ubuntu:~$ echo "int main(){}" & a5. gcc -v a5.cUsing built-in specs.Target: x86_64-linux-gnuConfigured with: ../src/configure -v --enable-languages=c,c++,fortran,objc,obj-c++,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/include/c++/4.2 --program-suffix=-4.2 --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-mpfr --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnuThread model: posixgcc version 4.2.4 (Ubuntu 4.2.4-1ubuntu4) /usr/lib/gcc/x86_64-linux-gnu/4.2.4/cc1 -quiet -v a5.c -quiet -dumpbase a5.c -mtune=generic -auxbase a5 -version -fstack-protector -fstack-protector -o /tmp/cc1dOc9c.signoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/4.2.4/../../../../x86_64-linux-gnu/include"ignoring nonexistent directory "/usr/include/x86_64-linux-gnu"#include "..." search starts here:#include &...& search starts here: /usr/local/include /usr/lib/gcc/x86_64-linux-gnu/4.2.4/include /usr/includeEnd of search list.GNU C version 4.2.4 (Ubuntu 4.2.4-1ubuntu4) (x86_64-linux-gnu)&&&&&&&
compiled by GNU C version 4.2.4 (Ubuntu 4.2.4-1ubuntu4).GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=100000Compiler executable checksum: 6e11fa7ca85fcf2be2ea3 as --traditional-format -V -Qy -o /tmp/ccCHTIOj.o /tmp/cc1dOc9c.sGNU assembler version 2.18.0 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.18.0. /usr/lib/gcc/x86_64-linux-gnu/4.2.4/collect2 --eh-frame-hdr -m elf_x86_64 --hash-style=both -dynamic-linker /lib64/ld-linux-x86-64.so.2 /usr/lib/gcc/x86_64-linux-gnu/4.2.4/../../../../lib/crt1.o /usr/lib/gcc/x86_64-linux-gnu/4.2.4/../../../../lib/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.2.4/crtbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/4.2.4 -L/usr/lib/gcc/x86_64-linux-gnu/4.2.4 -L/usr/lib/gcc/x86_64-linux-gnu/4.2.4/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.2.4/../../.. /tmp/ccCHTIOj.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-linux-gnu/4.2.4/crtend.o /usr/lib/gcc/x86_64-linux-gnu/4.2.4/../../../../lib/crtn.o
话说楼楼又用上了ubuntu??
登录百度帐号推荐应用}

我要回帖

更多关于 请教 英语 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信