Linux编程
文章平均质量分 76
linlin2178
这个作者很懒,什么都没留下…
展开
-
LINUX下动态库及版本号控制
前言针对同一动态组件的不同版本链接和加载。一、概念 DLL HELL字面意思是DLL"灾难",是由于com组件(动态库)升级引起的程序不能运行的情况。 原因 有三种可能的原因导致了DLL Hell的发生: 一是由使用旧版本的DLL替代原来一个新版本的DLL而引起的。这个原因转载 2017-03-04 13:33:10 · 1954 阅读 · 0 评论 -
Linux动态库搜索路径
众所周知,Linux动态库的默认搜索路径是/lib和/usr/lib。动态库被创建后,一般都复制到这两个目录中。当程序执行时需要某动态库,并且该动态库还未加载到内存中,则系统会自动到这两个默认搜索路径中去查找相应的动态库文件,然后加载该文件到内存中,这样程序就可以使用该动态库中的函数,以及该动态库的其它资源了。在Linux 中,动态库的搜索路径除了默认的搜索路径外,还可以通过以下三种方法来指定。转载 2017-03-04 13:41:02 · 210 阅读 · 0 评论 -
Linux 库总结
1. 基础知识1.1. 查看程序调用的库ldd /bin/ls1.2. 查看动态库包含的函数:nm -D /lib64/libc.so.61.3. 查看静态库包含的.o文件:ar -t libgcc.a1.4. 查看库的位数file /lib64/libc-2.12.so1.5. 查看库的sonamereadelf -d /lib64/l原创 2017-03-04 13:49:35 · 234 阅读 · 0 评论 -
Linux程序编译链接动态库版本的问题
不同版本的动态库可能会不兼容,如果程序在编译时指定动态库是某个低版本,运行是用的一个高版本,可能会导致无法运行。Linux上对动态库的命名采用libxxx.so.a.b.c的格式,其中a代表大版本号,b代表小版本号,c代表更小的版本号,我们以Linux自带的cp程序为例,通过ldd查看其依赖的动态库 $ ldd /bin/cp转载 2017-03-04 13:37:26 · 1904 阅读 · 0 评论 -
5分钟让你明白“软链接”和“硬链接”的区别
今天在知乎上看到一篇十分有趣的问题: 如何评价微软高级工程师痴迷于soft link这一linux常见概念?虽然又是知名撕逼王曾某的撕逼帖,但是我还是想就题目中链接的问题简单地讲讲。什么是链接?链接简单说实际上是一种文件共享的方式,是 POSIX 中的概念,主流文件系统都支持链接文件。它是用来干什么的?你可以将链接简单地理解为 Windows 中常见的快捷方式(或是 OS X 中的替身),Linu转载 2017-02-26 14:08:43 · 832 阅读 · 1 评论 -
unlink函数 与 remove函数
1. 查看 unlink 在帮助手册中的说明:unlink() deletes a name from the filesystem. If that name was the last link to a file and no processes have the file open the file is deleted and the space it was using is ma原创 2017-02-26 13:53:03 · 11568 阅读 · 0 评论