【问题标题】:Undefined reference to in AVR-GCCAVR-GCC 中未定义的引用
【发布时间】:2013-08-30 13:12:16
【问题描述】:

我的 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:未定义的引用 `液晶屏'

这里有什么问题?

【问题讨论】:

    标签: c avr-gcc


    【解决方案1】:

    这是一个链接器错误。

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

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

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

    【讨论】:

    • 如何使用 avr studio 4 做到这一点
    • 我正在使用 BUILD ALL 标签,但我仍然遇到同样的问题
    【解决方案2】:

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

    参考Add Source to Project步骤6。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2014-08-05
        • 2019-02-26
        • 2012-02-19
        • 2014-04-21
        • 2012-12-12
        • 2015-05-08
        • 1970-01-01
        • 1970-01-01
        • 2022-10-20
        相关资源
        最近更新 更多