gpt4 book ai didi

c++ - gcc vs clang 公共(public)库问题

转载 作者:搜寻专家 更新时间:2023-10-31 02:06:48 25 4
gpt4 key购买 nike

我有两个应用程序,一个是用 gcc(c++) 编译的,另一个是用 clang++ 编译的。我将为这两个应用程序使用共同的共享提升库。我的问题是是否使用 clang 编译器或 gcc 编译器编译 boost 共享库。我可以在使用 clang 编译的应用程序中使用使用 gcc 编译的 boost 库吗?

最佳答案

g++ 和 clang++ 作为编译器兼容(因为它们都遵循 Itanium ABI),但它们可能带有不兼容的标准库实现。

g++ 带有一个称为 libstdc++ 的标准库实现。您可以指示 g++ 使用不同的实现,但这并非微不足道。

clang++ 有时没有自己的标准库实现(并配置为使用 g++ 提供的实现),有时带有称为 libc++ 的实现。可以通过单个命令行选项轻松地将 clang++ 切换为使用 libc++ 或 libstdc++。

所以您的问题归结为您的应用程序使用什么标准库实现。如果他们使用相同的实现,则需要使用该实现(以及任一编译器)构建 Boost。如果他们使用不同的实现,您需要两个单独的 Boost 构建。

有时可以在同一个应用程序中混合针对不同标准库实现构建的组件,但这并不简单,需要很多限制,并且像 boost 这样的东西要么不可行,要么完全不可能.

关于c++ - gcc vs clang 公共(public)库问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49715462/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com