因为用了c++0x的一些新特性,必须使用4.6及以上的版本编译,所以使用了4.7编译,运行时提示错误

libstdc++.so.6(GLIBCXX_3.4.14) 错误

这个时候下了个glibc2.7的代码进行编译,并且编译安装后。。

哈,直接系统崩溃,所有的工具全部用不了,包括bash进程来起不来。只能重新

参考

-------------------------------------------------------

Glibc安装的库中有一个为ld-linux.so.X,其中X为一个数字,在不同的平台上名字也会不同。可以用ldd查看:

#ldd /bin/cat
linux-gate.so.1 => (0x00bfe000)
libc.so.6 => /lib/libc.so.6 (0x00a4a000)
/lib/ld-linux.so.2 (0x00a28000)

最后一个没有=>的就是。其中第一个不是实际的库文件,你是找不到的,它是一个虚拟库文件用于和kernel交互。

ld-linux.so是专门负责寻找库文件的库。以cat为例,cat首先告诉ld-linux.so它需要libc.so.6这个库文件,ld-linux.so将按一定顺序找到libc.so.6库再给cat调用。

ld-linux.so又是怎么找到的呢?其实不用找,ld-linux.so的位置是写死在程序中的,gcc在编译程序时就写死在里面了。Gcc写到程序中ld-linux.so的位置是可以改变的,通过修改gcc的spec文件。

运行时,ld-linux.so查找共享库的顺序

(1)ld-linux.so.6在可执行的目标文件中被指定,可用readelf命令查看
(2)ld-linux.so.6缺省在/usr/lib和lib中搜索;当glibc安装到/usr/local下时,它查找/usr/local/lib
(3)LD_LIBRARY_PATH环境变量中所设定的路径
(4)/etc/ld.so.conf(或/usr/local/etc/ld.so.conf)中所指定的路径,由ldconfig生成二进制的ld.so.cache中

编译时,ld-linux.so查找共享库的顺序

(1)ld-linux.so.6由gcc的spec文件中所设定
(2)gcc --print-search-dirs所打印出的路径,主要是libgcc_s.so等库。可以通过GCC_EXEC_PREFIX来设定
(3)LIBRARY_PATH环境变量中所设定的路径,或编译的命令行中指定的-L/usr/local/lib
(4)binutils中的ld所设定的缺省搜索路径顺序,编译binutils时指定。(可以通过“ld --verbose | grep SEARCH”来查看)
(5)二进制程序的搜索路径顺序为PATH环境变量中所设定。一般/usr/local/bin高于/usr/bin
(6)编译时的头文件的搜索路径顺序,与library的查找顺序类似。一般/usr/local/include高于/usr/include

----------------------------------------

综上,千万别把.so那个链接直接拷贝到服务器上面,不然,会导致其他依赖到的文件起不来.

最新文章

  1. C#输出文本树形层次,前或者后自定义空格位数
  2. SQLServer 去掉 字段前后空格
  3. java 字符串转成 json 数组并且遍历
  4. leetcode 第188题,我的解法,Best Time to Buy and Sell Stock IV
  5. QT 对话框二
  6. 转载:C#中的Invoke理解一
  7. java实现定时任务的三种方法
  8. WPF系列
  9. 一步步学习ASP.NET MVC3 章节总结
  10. Jetty开发指导:框架
  11. IOS 请求服务器的方式
  12. .Net使用JsonSchema验证Json
  13. PAT (Advanced Level) 1102. Invert a Binary Tree (25)
  14. Dynamics 365-如何下载新版本的Tools
  15. RCNN的流程
  16. sudo su 和 sudo -s【转】
  17. 单源最短路——Dijkstara算法
  18. 雷林鹏分享:jQuery EasyUI 窗口 - 自定义带有工具条和按钮的对话框
  19. python 正则进阶常用方法
  20. wepy中页面的跳转

热门文章

  1. plsql developer导入导出数据库方法
  2. javascript:history.go(-1);
  3. DNS添加/修改/查询/删除A记录
  4. Crystal Reports课程01-连接SQL Sever数据库
  5. 2015南阳CCPC G - Ancient Go 暴力
  6. HDU 4586 A - Play the Dice 找规律
  7. ABAP屏幕基础
  8. centosx64位寄存器
  9. [原创]如何写好SqlHelper 之终章
  10. 基础笔记(二)HTTP协议