1. ホーム
  2. ubuntu

std::runtime_error' のインスタンスを投げた後に呼び出される終了の解決法

2022-02-16 09:32:14
<パス

次のエラーが発生しました: 'std::runtime_error' のインスタンスを投げた後に呼び出された terminate what(): locale::facet::_S_create_c_ ロケール名が有効ではありません。

export LC_ALL="C"
(export LC_ALL="en_US.utf8" 代替)

.bashrcファイルに書いておくと、毎回このコマンドを入力する手間が省けます。

これは具体的にはどういうことですか?

LC_ALL=C は、コマンドが正しく実行されるように、すべてのローカライズ設定を削除することです。

再投稿 http://www.linuxsky.org/doc/newbie/200707/84.html
Linuxでプログラムを実行する際の異なる言語環境は、ANSI Cでサポートされているロケールで設定します。ロケールの命名規則は <language>_<region>. <character set encoding> で、例えば zh_CN.UTF-8 は zh が中国語、CN が本土、 UTF-8 が文字セットであることを示します。ロケール環境では、国際化環境におけるさまざまな設定を表す変数が用意されています。1. LC_COLLATE
この環境でのソートと比較のルールを定義します。

LC_CTYPE
文字の分類と文字列処理に使用され、文字エンコーディング、文字がシングルバイトかマルチバイトか、印刷方法など、すべての文字の処理方法を制御します。最も重要な環境変数の一つである。

LC_MONETARY
通貨形式

LC_NUMERIC
非通貨の番号表示形式

LC_TIME
時刻と日付のフォーマット

LC_MESSAGES
プロンプトメッセージの言語。LC_MESSAGESと同様のLANGUAGEパラメータもありますが、このパラメータを一度設定するとLC_MESSAGESパラメータは無効になります。LANGUANEパラメータは複数の言語メッセージを同時に設定でき、例えば LANGUANE="zh_CN.GB18030:zh_CN.GB18030:zh_CN.GB18030;zh_CN.GB18030:zh_CN.GB18030:zh_CN. GB2312:zh_CN"のようになります。

LANG
LC_*が設定されていない場合は、最下位レベルの設定であるLC_*のデフォルト値が使用されます。LC_ALLと同様。

LC_ALL
LC_* の設定値が設定されている場合、その値をすべて上書きするマクロです。LANG の値は、このマクロの影響を受けないことに注意してください。

C"はデフォルトのロケールで、"POSIX"は"C"の別称です。したがって、新しいシステムのインストールが完了すると、デフォルトのロケールはCまたはPOSIXになります。