Estou recebendo um erro bastante confuso quando tento compilar programas usando g ++ e clang no Arch Linux. O menor programa que produz o erro é
#include <locale>
int main()
{
return 0;
}
Se eu não incluir locale
, o erro desaparece. (Eu encontrei isso originalmente ao compilar um programa que incluía iomanip
, que inclui locale
.)
Salvei as mensagens de erro nos arquivos referentes a clang e g++ ; esses são vários megabytes grandes, então não vou copiá-los aqui. Há muitos avisos sobre "caractere nulo ignorado" e recebo um aviso do programa /usr/bin/locale
de que algum arquivo de origem não é válido UTF-8.
Meu idioma está definido como en_US.UTF-8
. Esta é a saída de 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=
Eu tentei definir LC_ALL
; reinstalando binutils e coreutils; definindo a localidade novamente com localectl; tudo sem efeito.