C 中的依赖错误

发布于 2024-11-04 13:08:54 字数 320 浏览 0 评论 0原文

在我的程序中,我收到此运行时(编译器不抱怨)错误: “未定义的符号 xyz”。

执行此代码的库是 lib A。 xyz 是在 lib B 中定义的。

我可以从这个错误中得出任何结论吗? 我的依赖关系应该是什么样子才能发挥作用? lib A 应该在 lib B 之后吗?

还是我完全疯了??

重新表述我的问题:

如果我对工作程序进行更改(仅更改依赖项),并且现在该程序给出运行时错误:“未定义的符号 xyz”,我可以从此错误中得出任何结论吗?

我的动机是了解如何解释错误消息以及从中推断出什么。如果我不能解决问题也没关系。

In my program, I am getting this runtime (compiler doesn't complain) error:
"undefined symbol xyz".

the lib that exercise this code is lib A.
xyz is defined in lib B.

Can I derive any conclusion from this error?
How should my dependencies look like for this to work?
lib A should come after lib B ?

Or I am completely out of my mind ??

Rephrasing my question:

If I make changes (solely changing dependencies) to a working program and now that program gives runtime error: "undefined symbol xyz", can I conclude anything from this error?

My motive is to understand how to interpret the error message and what to infer from it. It is fine if I cannot solve the issue.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

慢慢从新开始 2024-11-11 13:08:54

如果正如评论者所建议的那样,这是一个链接时错误,那么您在没有任何更多信息的情况下可以推断的唯一一件事是链接器在一个文件中看到了对名为 xyz 的符号的引用,但没有看到查看提供给它的任何对象或 lib 文件中定义的符号。

如果没有更多信息,几乎不可能解释为什么会发生这种情况。根据你所说的一些可能性。

  1. 提供给链接器的文件集不包括 lib B
  2. “xyz”实际上并不存在于 lib B 中。
  3. “xyz”在 lib B 中被定义为静态(无外部链接)。lib
  4. B 是一个名称重整的 C++ 库在。
  5. ???

If it is a link-time error as the commenters suggest, then the only thing you can infer without any more info is that the linker sees a reference to an symbol called xyz in one file, but does not see that symbol defined in any of the object or lib files provided to it.

It is virtually impossible to tell why this happens without more information. Some possibilities based on what you have said.

  1. the set of files provided to the linker does not include lib B
  2. 'xyz' does not really exist in lib B.
  3. 'xyz' is defined as static (no external linkage) in lib B.
  4. lib B is a c++ library with name mangling turned on.
  5. ???
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文