9.1i EDK,GCC  – 纯虚函数导致GCC 3.4.1出现问题-Altera-Intel社区-FPGA CPLD-ChipDebug

9.1i EDK,GCC – 纯虚函数导致GCC 3.4.1出现问题

问题描述

具有抽象基类和必须在MSS文件中指定STDIN和STDOUT之间的关系是什么?

以下简单代码导致错误而不指定stdout / stdin:

A级

{

上市:

virtual void Test(int a = 0)= 0;

};

B级:公众A

{

上市:

void Test(int a){}

};

int main(void)

{

B b;

返回0;

}

错误消息如下:

./microblaze_0/lib//libc.a(write.o):在函数`write’中:

write.o(.text + 0x34):对`outbyte’的未定义引用

write.o(.text + 0x58):对`outbyte’的未定义引用

collect2:ld返回1退出状态

make:*** [class / executable.elf]错误1

解决/修复方法

这来自GCC 3.4.1附带的C ++标准库版本。该库是为“托管”平台编写的,即具有STDIN和STDOUT等功能的平台。有一个非托管平台的配置,应该删除这些要求。 Xilinx使用此选项构建C ++。不幸的是,GCC 3.4.1没有完全实现这种支持。我们在EDK 8.1i中找到并修复了一些不完整的功能,但仍然有一些C ++功能可以提升托管平台的要求。纯虚函数就是这样一个特征。您的A类使用纯虚函数,这将引入此代码。

GCC 4.1.1中的支持要好得多。在9.1i中,GCC 4.1.1用于PPC。

请登录后发表评论

    没有回复内容