2

我的 main.c 如下

#include <avr/io.h>
#include<avr/interrupt.h>
#include<util/delay.h>
#include <string.h>
#include "main.h"
#include "globle.h"
#include "LCD.h"

int  main()

{

...
...
...

lcdInit(0xc0);
lcdScreen(0);
.
.
.


return 0; 

}

lcdInit(0xc0)的定义;和液晶屏(0);在我的 lcd.c 文件中,我有一个头文件 lcd.h 具有以下几行:

void lcdInit(char);
void lcdScreen(char);

但我仍然得到:

C:\Documents and Settings\Tanv\My Documents\my_project5\default/../Main.c:95: >undefined >reference to `lcdInit'

C:\Documents and Settings\Tanvr\My Documents\my_project5\default/../Main.c:96: 未定义对“lcdScreen”的引用

这里有什么问题?

4

3 回答 3

3

这是一个链接器错误。

您没有正确构建程序,您需要一起编译所有 C 文件,如下所示:

$ gcc-avr -o program main.c lcd.c

或者如果您单独编译,则将它们从目标文件链接在一起。

于 2013-08-30T13:16:26.223 回答
1

在此处输入图像描述

将源文件和头文件添加到您的项目中 1. 右键单击​​“源文件”然后“添加现有源文件” 2. 右键单击​​“头文件”然后“添加现有头文件”

请参阅将源添加到项目步骤 6。

于 2014-12-15T11:53:21.363 回答
0

我遇到了同样的问题,我从一开始就将文件添加到项目中,并将它们一起编译。但这并没有解决问题,我无意中注意到我犯了一个错误,即库函数的实现文件有扩展名.c,主扩展名.cpp。为了解决这个问题,我简单地将项目重新组装成 c 格式。

于 2020-11-12T22:01:10.763 回答