Arch Linux C++ 표준 라이브러리 헤더가 잘못된 UTF-8입니다.

Arch Linux C++ 표준 라이브러리 헤더가 잘못된 UTF-8입니다.

Arch Linux에서 g++ 및 clang을 사용하여 프로그램을 컴파일하려고 했을 때 매우 알 수 없는 오류가 발생했습니다. 오류를 생성하는 최소 프로그램은 다음과 같습니다.

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

포함하지 않으면 locale오류가 사라집니다. (나는 원래 iomanip이것을 포함하는 프로그램을 컴파일할 때 이것을 발견했습니다 locale.)

오류 메시지를 파일에 저장합니다.그 소리그리고g++;이것은 몇 메가바이트 크기이므로 여기에 복사하지 않겠습니다. "널 문자 무시"에 대한 경고가 많이 있으며 프로그램에서 /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를 다시 설치해 보았습니다 .

관련 정보