Arch Linux c++ 标准库标头无效 UTF-8

Arch Linux c++ 标准库标头无效 UTF-8

当我尝试在 Arch Linux 中使用 g++ 和 clang 编译程序时,遇到了一个非常神秘的错误。产生错误的最小程序是

#include <locale>
int main()
{
    return 0;
}

如果我不包含locale,错误就会消失。 (我最初在编译包含 的程序时发现了这一点iomanip,其中包含locale。)

我将错误消息保存到文件中克++;这些有几兆字节大,所以我不会在这里复制它们。有很多关于“忽略空字符”的警告,并且我从程序中收到警告,/usr/bin/locale指出某些源文件不是有效的 UTF-8。

我的区域设置设置为en_US.UTF-8.这是以下的输出locale

LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

我尝试过设置LC_ALL;重新安装 binutils 和 coreutils;使用 localectl 再次设置区域设置;一切都没有效果。

相关内容