2020年1月14日 晴

53 views
临近放假,路上的车子似乎变少了,今天班车居然提前二十分钟到达公司,感觉都还没睡好,就得下车,有点不太适应。

上午的进展汇报很不顺利,被领导痛批一顿。领导期望的是结果,我给出的是过程,的确不满足要求。
革命还未成功,尚需努力。
转身并不成功,还需要调整心态,继续加油。
得继续准备PPT,约时间评审。写PPT,这是一项重要的求生技能。

联调算法库时,遇到一个奇怪的问题,使用JNA可以调用到我编译的动态库里暴露的C方法,但会报段错误,导致core dump。
进一步定位,发现我写的代码里不能访问算法库提供的方法,把算法库的方法注释掉之后,调用方法没什么问题,很正常。
分析这个问题时走了点弯路,一开始以为是编译器,编译选项,或者自己的编码错误导致的,折腾了很久,还把之前的老同事拉过来一起分析。
后来经过反复折腾,终于发现只要代码里引用了算法库的C方法,调用时必定报错,无论是否使用C库的方法。
于是干脆写了个主函数,访问动态库里的方法,缩小范围。这时链接时报错,提示有个函数找不到,真相大白了。
原来算法库同事给我的demo代码是旧的,其中的一个方法要求使用者实现,我是参照demo代码实现的。这个方法在新版本里变更了签名,删除了一个参数,这在链接生成动态库时,链接器并不会报错,但编译为可执行文件时,链接器会发现缺失函数。
按照头文件里的定义,修改函数签名,重新编译链接,调测一遍通过。
以后得长记性,拿到别人提供的本地库文件和demo,先检查签名是否一致,免得吃暗亏。



若非注明,均为原创,欢迎转载,转载请注明来源:2020年1月14日 晴

关于 JackieAtHome

基层程序员,八年之后重新启航

此条目发表在 未分类 分类目录。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Protected with IP Blacklist CloudIP Blacklist Cloud