4

私は非常に単純なMPIhello_worldをコンパイルしようとしていました:

#include <stdio.h>
#include <mpi.h>

int main(int argc, char *argv[]) {
    int numprocs, rank, namelen;
    char processor_name[MPI_MAX_PROCESSOR_NAME];

    MPI_Init(&argc, &argv);
    MPI_Comm_size(MPI_COMM_WORLD, &numprocs);
    MPI_Comm_rank(MPI_COMM_WORLD, &rank);
    MPI_Get_processor_name(processor_name, &namelen);

    printf("Process %d on %s out of %d\n", rank, processor_name, numprocs);

    MPI_Finalize();
}

そして、次の問題が発生しました。

    Catastrophic error: could not set locale "" to allow processing of multibyte characters

私はそれを理解する方法を本当に知りません。

4

2 に答える 2

11

環境変数を定義してみてください

LANG=en_US.utf8
LC_ALL=en_US.utf8

UNIXを使用していると仮定して、コマンドラインで試しman localeてみて、 「utflocale」などの検索をグーグルで検索してください。locale -a

于 2012-11-14T20:00:44.143 に答える
0

指摘したように、環境変数LANGを再定義すると、問題が解決しました(LANG = en_US.utf8を設定)。

私は外部サーバーに接続していると言うかもしれません、そして私がインテルコンパイラーでコードをコンパイルする際に問題が発生するところがあります。

于 2021-11-03T21:48:46.120 に答える