【发布时间】:2014-10-02 11:30:28
【问题描述】:
我正在将一些 ADA 对象文件与一些调用 ADA 函数的 C++ 代码链接。编译和链接通过没有任何问题,但是当我运行程序时,出现运行时异常:
undefined symbol: __gnat_rcheck_CE_Invalid_Data
好像我忘了链接某个目标文件。但是,我将 ADA 编译器生成的所有 .o 文件传递给链接器...
有什么想法吗?
干杯
迈克尔
P.S.:我正在 (Ubuntu) Linux、GNAT 2014、gcc 4.7.4 上进行开发。
【问题讨论】:
-
如果您没有链接,您将无法运行您的程序?您的意思是您在链接阶段看到此错误?
-
链接作品,我已经编辑了原帖。
-
您可以尝试将 Ada 代码构建为库,如 this answer。
-
我构建了一个(静态)库(顺便感谢您的出色解释!)但是,现在我在执行我的 C++ 程序时得到
undefined symbol: system__pool_global__global_pool_object。有什么想法吗? -
我刚刚看到您的评论,因为 SO 只会在 my 问题或答案中通知我有关 cmets 的信息,除非评论中包含“@my-name”。希望你已经解决了(也许是通过构建一个动态库)