Код с использованием 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.