Компиляция программы на С++ при ошибке звездного кластера

Я новичок в программном обеспечении Starcluster и в настоящее время пытаюсь скомпилировать свою первую сложную программу в кластере из 3 узлов.

Я следовал инструкциям по созданию кластера, поместил файлы в папку sgeadmin и попытался скомпилировать. Выскакивает следующая ошибка:

    sgeadmin@master:~$ make
Building file: MyApp.cpp
Invoking: GCC C++ Compiler
mpiCC -std=c++0x -O3 -Wall -c -fmessage-length=0 -MMD -MP -MF"MyApp.d" -MT"MyApp.d" -o "MyApp.o" "MyApp.cpp"
In file included from /usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/mpicxx.h:201:0,
                 from /usr/lib/openmpi/include/mpi.h:1886,
                 from SAXPopulation.hpp:19,
                 from MyApp.hpp:15,
                 from MyApp.cpp:8:
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/constants.h:94:37: error: expected unqualified-id before numeric constant
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/constants.h:96:37: error: expected unqualified-id before numeric constant
make: *** [MyApp.o] Error 1

Похоже, проблема в mpi.h, но предполагается, что starcluster установит все это за вас... Я пытался найти только решения, но не нашел ответа... Кто-нибудь когда-нибудь сталкивался с этой ошибкой?

Заранее спасибо,

Бернардо

ИЗМЕНИТЬ Первые 8 строк MyApp.cpp

//============================================================================
// Name        : MyApp.cpp
// Author      : ****
// Version     :
// Copyright   : Your copyright notice
//============================================================================

#include "MyApp.hpp"
#include <mpi.h>

(mpi.h — строка 9)

MyAp.hpp первые 15 строк

/*
 * MyApp.h
 *
 *  Created on: *****
 *      Author: ****
 */

#ifndef MYAPP_H_
#define MYAPP_H_

#include <stdio.h>
#include <string.h>
#include <fstream>
#include <dirent.h>
#include "SAXPopulation.hpp"

SAXPopulation.hpp первые 18 строк

/*
 * SAXPopulation.hpp
 *
 *  Created on: ****
 *      Author: ***
 */

#ifndef SAXPOPULATION_HPP_
#define SAXPOPULATION_HPP_

#include <stdio.h>
#include <string>
#include <stdlib.h>
#include <vector>
#include "MersenneTwister.h"
#include "SAXChromo.hpp"
#include <algorithm>
#include "Stock.hpp"
#include <mpi.h>

(последняя строка 19)


person Bernardo    schedule 27.08.2017    source источник
comment
И вы уверены, что нет проблем с вашим источником? В вашем источнике нет пропущенных точек с запятой или чего-либо еще? Как выглядит ваш файл MyApp.cpp до строки 8 включительно? Как насчет MyApp.hpp до строки 15 включительно? SAXPopulation.hpp до строки 19 включительно?   -  person Some programmer dude    schedule 27.08.2017
comment
Привет! Спасибо за ответ! Просто добавил информацию, которую вы просили   -  person Bernardo    schedule 30.08.2017


Ответы (1)


Попробуйте добавить это в строку компиляции:

-DOMPI_SKIP_MPICXX
person user2982762    schedule 27.08.2017
comment
Спасибо! Это сделало трюк при компиляции! Однако отображались некоторые предупреждения, которых я не получил при тестировании в локальном кластере (несколько ВМ). Как только я проверю, что это не имело побочных эффектов при компиляции, я поставлю галочку в вашем ответе. Большое спасибо! - person Bernardo; 30.08.2017