我可以在 C++11 中创建静态库并从 C++03 调用它吗?

发布于 2024-12-13 01:18:53 字数 51 浏览 0 评论 0原文

如果我创建一个与 C++03 兼容的标头,并使用相同的编译器 (g++),这会起作用吗?

If I create a C++03-compatible header, and use the same compiler (g++), will this work?

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

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

发布评论

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

评论(1

秋千易 2024-12-20 01:18:53

一般来说,是的。一旦模块被编译,接口往往是最重要的部分。

不过,可能存在 ABI 问题,具体取决于名称修改或类似内容是否发生变化。如果您可以将它用作共享库,那么您也很有可能静态地使用它。

然而,更重要的是标准库版本。这些很可能会发生变化,因此应不惜一切代价避免在两者之间传递 std 对象。

In general, yes. Once a module is compiled, the interface tends to be the most important part.

There may be ABI issues, though, depending on whether name mangling or anything like that changed. If you can use it as a shared library, there's a decent chance you can use it statically as well.

More important, however, is standard library versions. Those very likely changed, so passing std objects between the two should be avoided at all costs.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文