“对'operator new(unsigned int)'的未定义引用'以及对类函数(和构造函数)的未定义引用

时间:2017-10-19 08:50:04

标签: c++ include linker-errors undefined-reference atmelstudio

我正在尝试使用Atmel Studio 7为ATxmega16E5编写代码。 我在论坛上进行了长时间的搜索,并且无法对其他类似于我自己的问题的建议进行改编。 (很多建议表明要更改编译选项,我不知道如何在Atmel Studio中执行此操作)。

基本上,我已经包含了我的GPP.h课程 但是,当我尝试在main.cpp中实例化一个类时,它会返回为包含构造函数在内的所有函数的一系列未定义引用。

编辑:减少包含的代码数量,专注于手头的主要问题, 主要是,文件似乎没有链接。

main.cpp:

//INCLUDES
#include "GPP.h"

//MAIN FUNCTION
int main()
{

    GPP *gpp = new GPP();

    //Turn on system power
    gpp->setPowerPin();
    gpp->screenOn();

    // ...etc (just makes some function calls

    // ...
    while(1);
}

GPP.h:

#ifndef GPOWERPACK_H
#define GPOWERPACK_H


class GPP
{   
public:

    GPP();
    //~GPP();

    void setPowerPin();
    void screenOn();
    void SPI_Init();
    void SPI_SendNext();
    void displayLogo();     
};
#endif

任何帮助都可以帮助我增加对cpp的理解。 我以前用c和java编码。

Atmel Makefile很长,可以根据要求显示部分吗?

1 个答案:

答案 0 :(得分:0)

首次使用Atmel Studio的任何人。 而那些简单地忘记了makefile的基础知识的人。

我找到了解决链接器问题的简单方法。

错误'未定义的引用'之所以发生,是因为我没有在项目构建中包含GPP.cpp和GPP.h文件。

修复: 1)打开"解决方案资源管理器"

2)右键单击您的项目,转到添加 - >现有项目

3)选择您所包含的文件/与项目构建相关的文件,然后单击

对误入歧途的问题道歉。事后看来似乎是一个简单的错误