修改
这个问题不重复。这个有更合适/清晰的标题和解释/细节。已经编辑了另一个主题以通知。
__
我使用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_data
和i2c_smbus_write_byte_data
在libi2c-dev
中定义,因此我安装了包libi2c-dev
。
在我的代码中,我做了:
#include <linux/i2c-dev.h>
#include <linux/i2c.h>
我检查了i2c-dev.h
和i2c.h
是否在系统中,我在/usr/arm-linux-gnueabi/include/linux
我拼命尝试了几个选项,将项目与图书馆相关联,转到Properties > C/C++ Build > Settings > Cross GCC Linker > Libraries > Libraries (-l)
并添加libi2c-dev
,i2c-dev
和i2c-core
(当然另外)但我得到了所有人都有同样的错误:cannot find -li2c-core
/ -llibi2c-dev
/ -li2c-dev
。
我不知道如何让它发挥作用!我好几天坚持这一步。我需要努力推进我的项目以完成毕业(截止日期很短!)。
提前感谢!