linux下小记
2016-01-06 17:11
375 查看
今天碰到一个问题 记录下
/usr/bin/ld: cannot find
ld 和ldconfig的区别
使用makefile编译的时候提示ld提示某个so找不到
当时使用ldconfig查了下 发现有这个库的连接信息
后来搜了下 才明白 ld是编译的连接器 非标准目录必须手动指定 ldconfig配置的是 则是可执行文件在运行是搜索so的路径
linux下升级glibc库
http://blog.csdn.net/officercat/article/details/39520227
ABI和API
api 是应用程序和操作系统之间的接口,凡是符合该api标准的应用程序都可以在支持该api的操作系统上编译通过。
abi 是二进制级别的接口,规定了二进制文件的格式、内容、装载/卸载程序的要求、函数调用时的参数传递
规则、寄存器、堆栈的使用。
如果操作系统都支持该api,但是机器的体系结构不同即他们的abi不同,那么在一个机器上生成的二进制代码是不可以在另外一台机器上面运行成功的,可能因为函数调用的参数传递规则不同或者其他由abi定义的行为产生的差异性。
其实关键的是abi定义了运行时的兼容性问题,这个问题是api无法解决的。api所能解决的是静态状态下的兼容性问题。
socket 发送 将应用程序的缓冲区完整的拷贝到内核发送缓冲区之后就会返回 因此并不保证对段收到消息
如果数据太大 内核缓冲区不足以装下所有数据 就会阻塞 直到所有完成拷贝。
如果设置了非缓冲的话 一旦缓冲区满就会立即返回并告知有多少数据被成功的拷贝
RST 客户端连接一个不存在的端口
客户端或者服务端异常终止socket 断电 断网
/usr/bin/ld: cannot find
ld 和ldconfig的区别
使用makefile编译的时候提示ld提示某个so找不到
当时使用ldconfig查了下 发现有这个库的连接信息
后来搜了下 才明白 ld是编译的连接器 非标准目录必须手动指定 ldconfig配置的是 则是可执行文件在运行是搜索so的路径
linux下升级glibc库
http://blog.csdn.net/officercat/article/details/39520227
ABI和API
api 是应用程序和操作系统之间的接口,凡是符合该api标准的应用程序都可以在支持该api的操作系统上编译通过。
abi 是二进制级别的接口,规定了二进制文件的格式、内容、装载/卸载程序的要求、函数调用时的参数传递
规则、寄存器、堆栈的使用。
如果操作系统都支持该api,但是机器的体系结构不同即他们的abi不同,那么在一个机器上生成的二进制代码是不可以在另外一台机器上面运行成功的,可能因为函数调用的参数传递规则不同或者其他由abi定义的行为产生的差异性。
其实关键的是abi定义了运行时的兼容性问题,这个问题是api无法解决的。api所能解决的是静态状态下的兼容性问题。
socket 发送 将应用程序的缓冲区完整的拷贝到内核发送缓冲区之后就会返回 因此并不保证对段收到消息
如果数据太大 内核缓冲区不足以装下所有数据 就会阻塞 直到所有完成拷贝。
如果设置了非缓冲的话 一旦缓冲区满就会立即返回并告知有多少数据被成功的拷贝
RST 客户端连接一个不存在的端口
客户端或者服务端异常终止socket 断电 断网
相关文章推荐
- linux下tty,控制台,虚拟终端,串口,console(控制台终端)详解
- 64位程序core分析
- Linux进程间通信方式
- Linux常用的压缩与归档命令
- linux awk命令使用实例
- linux环境变量 export命令详解
- linux系统稳定性测试-sysbench-磁盘IO性能测试-随机读
- Linux学习笔记:sed
- 红帽 Red Hat Linux相关产品iso镜像下载【百度云】【更新7.2】
- CentOS7安装Pig(Hadoop2.6,Pig0.15)
- JIRA 6.3.6版本部署安装,汉化,破解
- CentOS开机启动脚本的顺序
- CentOS6 启动流程图文解剖 + 引导文件损坏处理方法
- Centos设置程序开机自启的方法
- linux wheel组
- 【Linux】使用update-alternatives命令进行版本的切换
- Linux .o a .so .la .lo的区别
- 查找linux文件错误信息
- Linux下记录所有用户的操作命令,以方便后期审计
- 如何成为嵌入式软件开发人员