首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >包括武装精灵交叉编译中的库:未定义的引用

包括武装精灵交叉编译中的库:未定义的引用
EN

Stack Overflow用户
提问于 2014-08-18 23:20:03
回答 1查看 1.2K关注 0票数 0

因此,我试图使用一个手臂精灵交叉编译器使用libmodbus构建一个小程序,并且我不断地获得libmodbus的未定义引用错误,即使它是为交叉编译器和lib文件夹构建的。

我已经建好了libmodbus

代码语言:javascript
复制
./configure --host=arm-elf --prefix=/usr/local/arm-elf
make && make install

然后,我编写了我的程序,确保包括modbus头。

代码语言:javascript
复制
#include <modbus/modbus.h>

并进行了编译

代码语言:javascript
复制
arm-elf-gcc  -o modbus_read_register  -Wl,-elf2flt -v -lmodbus modbus_read_register.c

但它总是失败的,我认为,是连接阶段。

代码语言:javascript
复制
/usr/local/lib/gcc-lib/arm-elf/2.95.3/collect2 -X -o modbus_read_register /usr/local/arm-elf/lib/crt0.o -L/usr/local/lib/gcc-lib/arm-elf/2.95.3 -L/usr/local/arm-elf/lib -elf2flt -lmodbus /tmp/cc000Bvc.o -lgcc -lc -lgcc
modbus_read_register.elf2flt(.text+0x88): In function `main':
: undefined reference to `modbus_new_tcp'
modbus_read_register.elf2flt(.text+0x98): In function `main':
: undefined reference to `modbus_connect'
modbus_read_register.elf2flt(.text+0xb0): In function `main':
: undefined reference to `modbus_strerror'
modbus_read_register.elf2flt(.text+0xcc): In function `main':
: undefined reference to `modbus_free'
modbus_read_register.elf2flt(.text+0x11c): In function `main':
: undefined reference to `modbus_read_registers'
modbus_read_register.elf2flt(.text+0x13c): In function `main':
: undefined reference to `modbus_strerror'
modbus_read_register.elf2flt(.text+0x1cc): In function `main':
: undefined reference to `modbus_close'
modbus_read_register.elf2flt(.text+0x1d4): In function `main':
: undefined reference to `modbus_free'
collect2: ld returned 1 exit status
make: *** [modbus_read_register] Error 1

我不知道为什么链接器不能工作,因为libmodbus.a文件位于正确的路径上,并且在args中提供。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-19 05:28:24

由于libmodbus包安装在前缀提供的位置,因此在

--prefix=/usr/local/arm-elf

在编译程序modbus_read_register.c时,应指定此路径。

手臂精灵gcc -o modbus_read_register -Wl -elf2flt -v -lmodbus modbus_read_register.c -L/usr/local/arm-elf/lib

在这里,-L选项将重定向链接器以搜索指定目录中的文件。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25373516

复制
相关文章

相似问题

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