Код с использованием MPI и работа в Linux с OpenMPI не компилируется в Windows с использованием MSMPI

Я пытаюсь скомпилировать программу на 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 ответ

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

Другие вопросы по тегам