我正在 Ubuntu 上运行的 Eclipse Luna 中使用 gcc 4.8.2 编译器编译 C 程序。
我收到一条错误消息:
Description Resource Path Location Type
undefined reference to'OSD0_WRITE' main.c /stm32107/src line 120 C/C++ Problem
main.c
#include "OSD.H"
void OSD0_WRITE (
uint8_t *YAZI, uint8_t FONT_PROPERTIES,
uint16_t X_COORDINATE, uint16_t Y_COORDINATE,
uint8_t FONT_RANGE_X, uint8_t FONT_RANGE_Y,
uint8_t FONT_SIZE_X, uint8_t FONT_SIZE_Y,
uint8_t CHARACTER_DIM_X, uint8_t CHARACTER_DIM_Y,
uint8_t FONT_BLINK, uint8_t FONT_FADE );
int main(void)
{
uint8_t TEXT[] = "123456789012345678901234567890";
OSD0_WRITE(TEXT ,0x05,45,45,1,1,30,5,1,1,2,15);
} /* main.c */
OSD.C
#include "OSD.H"
void OSD0_WRITE (
uint8_t *YAZI, uint8_t FONT_PROPERTIES,
uint16_t X_COORDINATE, uint16_t Y_COORDINATE,
uint8_t FONT_RANGE_X, uint8_t FONT_RANGE_Y,
uint8_t FONT_SIZE_X, uint8_t FONT_SIZE_Y,
uint8_t CHARACTER_DIM_X, uint8_t CHARACTER_DIM_Y,
uint8_t FONT_BLINK, uint8_t FONT_FADE )
{
TxBurst(0x400,FONT_SIZE_X, TEXT);
OSD0_XY(X_COORDINATE,Y_COORDINATE);
.....
.....
....
} /* OSD0_WRITE */
***** 构建日志 *************
为 STM32F107 Cortex M3 设备编译。这里的构建日志详细信息。
最佳答案
实际的文件名是否像 OSD.C 一样大写?您能否将其重命名为至少具有小写的文件扩展名 OSD.c 并重试,因为 gcc 将 .C 文件编译为 C++。 – 回答@nos
关于c - 键入对 'OSD0_WRITE' 的 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29792435/