gpt4 book ai didi

c++14 - 与库链接导致 char 中缺少 collat​​e facet

转载 作者:行者123 更新时间:2023-12-05 06:40:37 25 4
gpt4 key购买 nike

我有一个使用 std::regex 的 C++14 应用程序.对于某些正则表达式,std::regex构造函数将抛出 std::bad_cast (通过 std::use_facet )如果整理方面不可用。

我想将我的应用程序与作为 .so 分发的第三方库链接,但我没有源代码。该库为 glibc 所需的一切提供了默认符号版本。它指定的版本是 2.2.5(2002 年发布)。例如,nm 告诉我:

U setlocale@@GLIBC_2.2.5

如果我在没有第三方库的情况下链接我的应用程序,则正则表达式会起作用。但是当我链接到第三方库时,std::has_facet<std::collate<char>>(std::locale())返回 false,所以 std::regex构造函数抛出。

我的猜测是第三方库所需的非常旧的符号版本正在干扰默认语言环境。我曾尝试在我的应用程序中更改默认语言环境,但这没有帮助。

我该如何解决这个问题?

最佳答案

更新到使用较新编译器构建的第三方库版本会导致问题消失。

关于c++14 - 与库链接导致 char 中缺少 collat​​e facet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42376100/

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