我正在使用Atrollic Studio(Eclipse中也存在问题)。
.h文件
extern int i2cInitIO(uint channel, uint hz);
extern int i2cIO(uint device, byte *put, uint putlen, byte *get, uint getlen);
.c文件
#include "tollosI2C.h"
int i2cGetReg(uint device, byte reg, byte *get) {
// write one byte address then read 1 byte data
return i2cIO(device, ®, 1, get, 1);
} // i2cGetReg
我有一个问题:未定义引用`i2cIO'。这个项目需要由ARM工具链编译。 StM32F103VET6 - 高密度设备。我使用的是ST-Link。
UPD:我的.h文件 - http://pastebin.com/52ftBxR9
和c。档案 - http://pastebin.com/CcjpVZUP
编译器调用命令 - 没有大括号的“gcc”。
编译器调用参数 - “-E -P -v -dD $ {plugin_state_location} /specs.c”没有大括号。
答案 0 :(得分:0)
好的,您的环境称为Atollic(拼写错误),但是从头文件的名称我得出结论,您正在使用Mike Cowlishaw的Tollos主管。
其次,您的编译选项可能不正确,因为GCC的-E
选项仅导致生成预处理输出,但您报告的错误是链接器错误。
如果没有更多信息,我会假设您缺少一个包含i2cIO
实现的库,可能是链接器命令行缺少的选项。
由于您似乎使用的是Tollos不直接支持的处理器变体,我想您想要为您的处理器移植Tollos。检查你的makefile cq。 Atollic项目设置包括正确的库。如果合适,请将-E
选项替换为-c
。