如何解决链接错误"未定义的引用`i2c_smbus_read_byte_data'"

时间:2015-10-17 19:44:53

标签: c++ c linux eclipse gcc

修改

这个问题不重复。这个有更合适/清晰的标题和解释/细节。已经编辑了另一个主题以通知。

__

我使用Luna Service Release 2(4.4.2)和Ubuntu Utopic以及arm-linux-gnueabi-gcc编译器。

我试图在C中编译单个程序,通过I2C总线读取和写入设备,但我收到了这些错误:

make: *** [STRME_v2] Error 1
recipe for target 'STRME_v2' failed 
undefined reference to `i2c_smbus_read_byte_data' 
undefined reference to `i2c_smbus_write_byte_data'

它看起来更像是链接器错误。函数i2c_smbus_read_byte_datai2c_smbus_write_byte_datalibi2c-dev中定义,因此我安装了包libi2c-dev

在我的代码中,我做了:

#include <linux/i2c-dev.h>
#include <linux/i2c.h>

我检查了i2c-dev.hi2c.h是否在系统中,我在/usr/arm-linux-gnueabi/include/linux

中找到了它们

我拼命尝试了几个选项,将项目与图书馆相关联,转到Properties > C/C++ Build > Settings > Cross GCC Linker > Libraries > Libraries (-l)并添加libi2c-devi2c-devi2c-core(当然另外)但我得到了所有人都有同样的错误:cannot find -li2c-core / -llibi2c-dev / -li2c-dev

我不知道如何让它发挥作用!我好几天坚持这一步。我需要努力推进我的项目以完成毕业(截止日期很短!)。

提前感谢!

0 个答案:

没有答案