C/CPP, Unix Like

解除clock_gettime@@GLIBC_2.17的依赖

在x86_64的Debian Jessie上交叉编译一个mipsel架构的程序,能静态链接的都静态链接了。 程序编译好传送到mipsel架构的设备上时,ldd查看库的依赖,却提示

(⊙﹏⊙)b mipsel设备上运行着Debian Wheezy,使用的是glibc 2.13:

尝试了更新到glibc 2.17,结果运行所有动态链接glibc的程序都提示Segmentation fault或Bus error,眼看要变砖!!!∑(゚Д゚ノ)ノ,最后用一个静态链接版本 […]

Read more No Comments
C/CPP, 编程

探讨C语言返回struct的实现

C语言基本类型的返回通过寄存器实现。 寄存器容量不大,一个结构体的大小不定,多塞几个成员,很容易就会超过寄存器的容量,不太可能通过寄存器一次性返回一个结构体。 把以下代码转为汇编,探个究竟:

优化后的代码可能比较晦涩,64位寄存器数量是32位的一倍,为了简便理解,关闭代码优化,并且转为32位汇编,命令:

结果:

汇编代码已写上注释。 在get_struct()函数中,调用fun()之前,会首先把ge […]

Read more 2 Comments
默认分类

我没有没有这种天分 包容你也接受他

You are surprised to see someone? Must be him. Today at 2:00 A.M. 微信,来自你的消息,责怪我在你朋友圈的回复。 那是一条,你与他共游的照片。   我只好解释道:“我不在乎给你的东西,你开心就好。” 我是那种“只要你开心,即使是天上的月亮都愿意给你摘下来”的傻瓜。 但我没说出口的是:“我给你的,不是为了让你和他开心。”   我曾说,我有过情况类似的梦三次:本来我觉得与你非常亲近,但我需要你陪伴时,却发现你在与其他人欢乐。 梦里的感觉,就是我现在的感觉:深深的孤单,寂寞。 你离我远去,却未曾说过爱我。如今你欢乐的 […]

Read more No Comments
默认分类

我们结婚吧

“我们结婚吧!” 不知何来的勇气,但话的确从我口中出来了,婷也如此爽快地答应了。   定下了如此重要的诺言,不知为何,我们的关系还是如此脆弱,自各奔东西起,婷就被我埋藏到了脑海深处,直至十多年后的今天,再次浮现。   流逝的岁月也冲蚀着我的记忆,我想不起我们的曾经,唯一例外的,是我说出“我们结婚吧”的那天。   我顽皮,被老师罚站了。失落是必然。我偷偷溜到了婷耳旁,耳语道:“我们结婚吧!。” 婷爽快的回答,把我的紧张感扼杀在了摇篮里:“好啊!。”   对于现在理智的我来说,”喜欢”的定义已变得模糊,但当年幼稚的我,却可以肯定我们真 […]

Read more 1 Comment
C/CPP, 编程

关于Visual Studio C LANG下pow()函数的重载

当初看到Visual Studio 2010的这个提示,我真当VS实现了C LANG的函数重载。 今天即兴尝试VS下C LANG的函数重载,虽然IDE没报语法错误,但编译器编译时会报错。无奈之下只好打开长长的math.h一探究竟。 通过全文搜索很容易找到math.h声明的pow()原型:

声明的这些原型一眼看上去没什么问题,挺正常的重载方式。不过math.h内容有点多,不细心点还是看不出来,实际上pow()的重载使用了条件编译:

查找了一下资料,得知” […]

Read more No Comments