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를 다시 설치해 보았습니다 .