4

我试图编译一个非常简单的 MPI hello_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 localelocale -a在 google 上搜索“utf locale”和类似的搜索。

于 2012-11-14T20:00:44.143 回答
0

正如所指出的(设置 LANG=en_US.utf8),重新定义环境变量 LANG 为我解决了这个问题。

我可能会说我正在连接到一个外国服务器,这就是我在使用英特尔编译器编译代码时遇到的问题。

于 2021-11-03T21:48:46.120 回答