(错误)使用Green Hills工具链为ARM构建C ++应用程序时未解析的符号

时间:2016-11-10 08:40:38

标签: arm embedded integrity greenhills

我使用Green Hills工具链使用ARM arch交叉编译目标设备的应用程序(该设备将运行INTEGRITY OS)但它失败并出现类似的错误

__vec_new from ...
__vec_delete from ...

我不明白它的含义以及如何解决它。 有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:2)

未解析的符号表示无法链接必要的目标代码或定义所述符号的库。这些特定符号很可能与newdelete C ++运算符的实现有关,并且很可能表明您没有链接C ++库。我对Green Hills工具链不是很熟悉,但是,如果您将链接器分别调用到编译器,则可能需要显式指定C ++链接。

如果使用IDE,您可能已创建了C项目但添加了C​​ ++代码 - 这可能会导致链接器选项无法链接C ++支持和库。

Green Hill的编译器可以选择由语言变体选项或链接器覆盖选项选择的C ++库。这些选项可以在MULTI IDE设置或命令行中设置,具体取决于您管理项目的方式。请参阅编译器/链接器文档 - 我发现了以下内容:

enter image description here

您应该可以访问完整的文档,此后的页面描述了链接器如何搜索库以及如何指定备用库。如果您通过指定-nostdlib禁用了自动库搜索,则不会执行自动链接,您必须明确链接必要的库。

答案 1 :(得分:0)

我已经解决了错误

原因是项目源包含一个包含的文件* .c源和

我将其重命名为* .cpp然后错误消失了