gpt4 book ai didi

c++ - 针对 C++11 应用程序使用 C++17 库

转载 作者:行者123 更新时间:2023-12-01 13:21:33 25 4
gpt4 key购买 nike

如果 C++11 应用程序使用的属于 C++17 库的所有面向公众的 header 和 API 都遵循 C++11 语法,是否可以针对 C++11 应用程序使用使用 C++17 构建的库. C++17 库的内部实现确实具有 C++17 特定的功能。
它是静态链接还是动态链接有关系吗?

最佳答案

Is it possible to consume a library built using C++17 against a C++11 application if all the public facing headers and APIs belonging to the C++17 library that the C++11 application consumes follows C++11 syntax.


一般来说,这是灾难的根源。在某些情况下,如果幸运的话,它可能会起作用(例如,如果您不共享更改 ABI 的标准库对象,如果您在使用 API 时没有触发任何 ABI 差异等)。
相反,您要做的是使用完全相同的编译器编译所有代码,包括编译器版本和编译器标志。即使这样,您也应该阅读编译器的文档,以了解有关依赖项和系统依赖项的静态/动态链接的更多可能问题。

The internal implementation of the C++17 library does have C++17 specific features.


这本身不是问题(事实上,许多 C++ 库都提供 C 接口(interface)),但是您需要尊重编译器/平台文档的任何链接限制/问题。

Does it matter if it's a statically linked vs dynamically linked?


相同的。对于大多数平台,它不应该改变混合 C++11 和 C++17 的问题,但你仍然需要处理通常的问题。

关于c++ - 针对 C++11 应用程序使用 C++17 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63079260/

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