首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与libbluetooth.so连接

与libbluetooth.so连接
EN

Stack Overflow用户
提问于 2014-11-04 13:48:38
回答 1查看 8.4K关注 0票数 5

在Ubuntu14.04上,我尝试做一个蓝牙设备清单的小例子,但是在编译这个极简的演示http://people.csail.mit.edu/albert/bluez-intro/c404.html时,我面临一个简单的问题,就是如何链接到蓝牙共享库

代码语言:javascript
复制
$ sudo apt-get install libbluetooth-dev

$ gcc -lbluetooth simplescan.c -o simplescan
/tmp/ccuwRsB5.o: In function `main':
simplescan.c:(.text+0x79): undefined reference to `hci_get_route'
simplescan.c:(.text+0x8c): undefined reference to `hci_open_dev'
simplescan.c:(.text+0x132): undefined reference to `hci_inquiry'
simplescan.c:(.text+0x18f): undefined reference to `ba2str'
simplescan.c:(.text+0x1f0): undefined reference to `hci_read_remote_name'
collect2: error: ld returned 1 exit status

$ nm -D /usr/lib/x86_64-linux-gnu/libbluetooth.so.3.13.0 | grep hci_get_route
0000000000008f00 T hci_get_route

似乎找到了蓝牙共享库并包含了所需的功能,但是链接阶段没有实现。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-04 14:37:19

解决办法(对我来说)是令人惊讶的:给gcc的论点的顺序很重要。"-lbluetooth“应放在”simplescan.c“之后:

代码语言:javascript
复制
$ gcc simplescan.c -lbluetooth -o simplescan # Success
$ gcc -lbluetooth simplescan.c -o simplescan # Failure
/tmp/ccWhZFXs.o: In function `main':
simplescan.c:(.text+0x79): undefined reference to `hci_get_route'
simplescan.c:(.text+0x8c): undefined reference to `hci_open_dev'
simplescan.c:(.text+0x132): undefined reference to `hci_inquiry'
simplescan.c:(.text+0x18f): undefined reference to `ba2str'
simplescan.c:(.text+0x1f0): undefined reference to `hci_read_remote_name'
collect2: error: ld returned 1 exit status
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26736762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档