Код с использованием MPI и работа в Linux с OpenMPI не компилируется в Windows с использованием MSMPI - PullRequest
0 голосов
/ 18 мая 2018

Я пытаюсь скомпилировать программу на C, используя MSMPI в Windows 7. Программа компилируется и прекрасно работает в Linux с OpenMPI. Однако он не компилируется с компилятором MS в Visual Studio 2010. В тот момент, когда я раскомментирую строку «MPI_Init ()», я пытаюсь получить большое количество ошибок и сообщение

«Ошибка 207, ошибка C1003: количество ошибок превышает 100; остановка компиляции»

Первая оскорбительная строка - это

"myObj * a [5] = {NULL};"

с сообщением об ошибке

"Ошибка 104 ошибка C2059: синтаксическая ошибка: '{'"

Компилятор жалуется на неожиданную правую фигурную скобку "{". С закомментированным оператором MPI_Init код компилируется нормально, но, конечно, не использует MSMPI. Вот фрагмент кода

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h> 
#include <math.h>
#include <omp.h>
#include <mpi.h>
#include "more_header_files.h" 

int main(int argc, char *argv[])
{
   MPI_Init(&argc, &argv);
   MPI_Status status;
   int my_rank, numProc;

   MPI_Comm_rank( MPI_COMM_WORLD, &my_rank );
   MPI_Comm_size( MPI_COMM_WORLD, &numProc );

   myObj *a[5] = {NULL};

Есть ли решение, кроме установки MinGW и компиляции с GCC (которое также может не работать)?

1 Ответ

0 голосов
/ 23 мая 2018

Я использовал VS 2010, когда отправил вопрос.Переход на VS 2013 решил проблему компиляции.К сожалению, теперь исполняемый файл вылетает без полезной информации.Тот же самый точный код прекрасно работает в Linux, используя OpenMPI.

...