我使用Green Hills工具链使用ARM arch交叉编译目标设备的应用程序(该设备将运行INTEGRITY OS)但它失败并出现类似的错误
__vec_new from ...
__vec_delete from ...
我不明白它的含义以及如何解决它。 有人可以帮帮我吗?
答案 0 :(得分:2)
未解析的符号表示无法链接必要的目标代码或定义所述符号的库。这些特定符号很可能与new
和delete
C ++运算符的实现有关,并且很可能表明您没有链接C ++库。我对Green Hills工具链不是很熟悉,但是,如果您将链接器分别调用到编译器,则可能需要显式指定C ++链接。
如果使用IDE,您可能已创建了C项目但添加了C ++代码 - 这可能会导致链接器选项无法链接C ++支持和库。
Green Hill的编译器可以选择由语言变体选项或链接器覆盖选项选择的C ++库。这些选项可以在MULTI IDE设置或命令行中设置,具体取决于您管理项目的方式。请参阅编译器/链接器文档 - 我发现了以下内容:
您应该可以访问完整的文档,此后的页面描述了链接器如何搜索库以及如何指定备用库。如果您通过指定-nostdlib
禁用了自动库搜索,则不会执行自动链接,您必须明确链接必要的库。
答案 1 :(得分:0)
我已经解决了错误
原因是项目源包含一个包含的文件* .c源和
我将其重命名为* .cpp然后错误消失了