Chinaunix首页 | 论坛 | 博客
  • 博客访问: 692256
  • 博文数量: 192
  • 博客积分: 1875
  • 博客等级: 上尉
  • 技术积分: 2177
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-23 23:21
个人简介

有时候,就是想窥视一下不知道的东东,因为好奇!

文章分类

全部博文(192)

文章存档

2024年(8)

2023年(3)

2020年(1)

2019年(1)

2018年(1)

2017年(2)

2016年(69)

2015年(53)

2014年(14)

2013年(1)

2012年(5)

2011年(25)

2010年(9)

分类: LINUX

2014-12-21 12:43:57

这几天在试用下炽鸟的wifi模块,遇到程序的链接故障。折腾了近一天,记录下。
环境:
hr@huarain:~/test/dl$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.1 LTS"
hr@huarain:~/test/dl$ uname -a
Linux huarain 3.13.0-37-generic #64-Ubuntu SMP Mon Sep 22 21:28:38 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
hr@huarain:~/test/dl$

折腾过程如下:
    编译、链连一步到位出现以下错误:
      
错误信息表明,在链接时,发现以上的一些符号未定义。但是在通过nm命令能在命令中的动态库文件中找到对应的符号:
     
     
反复折腾后发现,只要调换链接库的链接顺序,改成如下即可完成链接过程:
    
查找资料发现,多个动态库文件之间存在依赖时,链接器对动态库的链接顺序有要求.
具体到本次操作命令上就是:
      libchd_SDK.so依赖libchd_base.so,链接顺序就是...-lCHD_SDK -lchd_base...
      libchd_base.so依赖libpthread.so, 链接顺序就是... -lchd_base -lpthread...

偿试将 -lpthread放到命令的最后,也会出错:
   
阅读(1962) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~