• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

请教 Atmel Studio 7 下使用 C++ 的 ld

d77c3f3d69b78682 2020-07-03 浏览量:579
本人使用keil环境开发STM32的C++程序已经有几年时间了。觉得非常方便实用。近来在改造一个AVR的老项目的时候想用C++来重写,使用Atmel Studio 7环境。结果发现一个关于继承的编译错误解决不了,在此请教高手帮我看看,万分感谢!

下面是一个示例
//--------------------------------//
class CAAA
{
public:
        CAAA(){};
        //~CAAA(){};
        virtual void Init(void)=0;
protected:
private:
};
class CBBB : public CAAA
{
public:
        CBBB(){};
        void Init(void){};
protected:
private:
};

CBBB bbb;
//--------------------------------//
这样编译没有错误。但是我需要基类 CAAA中的析构函数,但是使能了~CAAA(){}; 函数,编译就会报错:
Severity        Code        Description        Project        File        Line
Error                ld returned 1 exit status        GccApplication1        collect2.exe        0

不知为何,这种写法 我在Keil MDK STM32 和 IAR 的STM8 中已经用了很久了  没有问题。不知道这个AVR的编译器有什么特殊之处,需要什么特殊处理。
谢谢老大们指点一下,万分感谢
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
所有亮答 数量:2
  • 有没有指定编译器是g++的编译器,而不是gcc的编译器的。

    atmel stdio 使用的是gcc的编译器,要符合g++的规范才行

  • 这个编译器应该不能支持g++,avr系列的编译器可能没这个功能

相关问题

问题达人换一批

请教 Atmel Studio 7 下使用 C++ 的 ld