我試圖編譯一個很簡單的MPI程序hello_world編譯:,我無法用MPI編譯器使用C++
#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
我真的不知道如何弄清楚。
錯誤消息是否提供文件名和/或行號?您的源文件中是否包含非ASCII字符?你的源文件是用UTF-16編碼的嗎? –
這是編譯器錯誤嗎?它來自哪條線?還是運行時錯誤,大概是由'MPI_Get_processor_name'產生的,因爲這是唯一一個處理字符串的東西?如果你刪除字符串的東西,它會消失嗎? – hyde
你在Mac OSX上?他們遇到了語言環境不可用的問題,IIRC – sehe