Это не совсем оказалось для меня целым решением, но оказалось, что большинство из них и поставило меня на путь открытия всего остального. Мне пришлось переименовать один файл, прежде чем все будет на самом деле. Большое спасибо.

ЕМА РЕШЕНА!

Следуйте инструкциям, опубликованным DonsВотОткройте переменные среды (Мой компьютер -> Свойства (в контекстном меню) -> Дополнительно)Добавить или создать новую переменную средыC_INCLUDE_PATH поэтому он указывает на каталог включения MPI. В моем случае,/c/program files/mpich2/include.Добавить или создать новую переменную средыLIBRARY_PATH поэтому он указывает на каталог lib MPI. В моем случае,/c/program files/mpich2/libСпрячь libmpi.a как-нибудь. При необходимости вы можете исправить это позже. Это хак, но вы не можете собрать haskell-mpi без этого, потому что ld потерпит неудачу. Я переименовал его в _libmpi.a

Теперь haskell-mpi должен собираться на Windows. Предвидя больше проблем в будущем, но это построило, и это решило мою проблему.

Я хочу использовать haskell-mpi на лабораторной машине в одной из моих университетских лабораторий, чтобы выполнить мой окончательный проект для моего класса параллельных вычислений, но у меня возникают проблемы, пытаясь заставить haskell-mpi построить против MPICH2.

haskell-mpi почти полностью не документирован, и копание в их git-репозитории помогло мне запрограммировать некоторые примеры программ на нем, но не помогло настроить его на Windows. В моей личной системе Linux у меня не было проблем с настройкой и запуском haskell-mpi против MPICH2.

Проблема, вероятно, в одном из cabal, в способе установки MPICH2 или в конфигурации cabal haskell-mpi, отсюда и выбор тегов.

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

У меня есть права администратора в лаборатории, где я буду его запускать, поэтому, если проблема связана с самой установкой MPICH2, я действительно могу переустановить ее.

Cabal не работает следующим образом, когда я пытаюсь установить haskell-mpi:

Resolving dependencies...
Configuring haskell-mpi-1.0.0...
cabal: Missing dependency on a foreign library:
* Missing C library: mpi
This problem can usually be solved by installing the system package that
provides this library (you may need the "-dev" version). If the library is
already installed but in a non-standard location then you can use the flags
--extra-include-dirs= and --extra-lib-dirs= to specify where it is.
cabal: Error: some packages failed to install:
haskell-mpi-1.0.0 failed during the configure step. The exception was:
ExitFailure 1

Вот что я попытался дать для --extra-lib-dirs и --extra-include-dirs:

--extra-lib-dirs="C:\Program Files\MPICH2\lib" 
--extra-include-dirs="C:\Program Files\MPICH2\include"

Я попытался изменить порядок, где я поставил эти флаги, избегая зазоров, используя короткий путьPROGRA~1 и различные сочетания этих. Поэтому я не думаю, что это поможет. Мне нужно знать, чтоmpi Зависимость на самом деле означает и выяснить, как я буду ее удовлетворять, чтобы эта библиотека могла на самом деле построить. Вот что сейчас находится в двух вышеупомянутых папках:

Libs:

 Volume in drive C has no label.
 Volume Serial Number is 5406-5C5C

 Directory of C:\Program Files\MPICH2\lib

04/22/2011  01:20 PM    <DIR>          .
04/22/2011  01:20 PM    <DIR>          ..
01/31/2011  03:59 PM           515,704 cxx.lib
01/31/2011  04:23 PM           137,434 fmpich2.lib
01/31/2011  04:25 PM           410,982 fmpich2g.lib
01/31/2011  04:29 PM           162,690 fmpich2s.lib
01/31/2011  04:53 PM                 0 libfmpich2g.a
01/31/2011  04:53 PM                 0 libmpi.a
01/31/2011  04:53 PM           215,528 libmpicxx.a
01/31/2011  04:16 PM            10,618 mpe.lib
01/31/2011  04:46 PM           135,434 mpi.lib
               9 File(s)      1,588,390 bytes
               2 Dir(s)  221,505,835,008 bytes free

Включают:

 Volume in drive C has no label.
 Volume Serial Number is 5406-5C5C

 Directory of C:\Program Files\MPICH2\include

02/01/2011  05:38 PM    <DIR>          .
02/01/2011  05:38 PM    <DIR>          ..
11/17/2009  09:46 PM             4,857 clog_commset.h
11/02/2007  05:50 PM               696 clog_const.h
01/31/2011  03:50 PM               731 clog_inttypes.h
11/17/2009  09:46 PM             1,353 clog_uuid.h
10/21/2010  01:20 PM               355 mpe.h
11/17/2009  09:46 PM            11,102 mpe_log.h
11/02/2007  05:50 PM             1,833 mpe_logf.h
11/17/2009  09:46 PM             1,322 mpe_misc.h
01/31/2011  03:50 PM            57,128 mpi.h
01/31/2011  04:23 PM             3,251 mpi.mod
01/31/2011  03:50 PM            97,267 mpicxx.h
01/31/2011  03:51 PM            19,051 mpif.h
01/31/2011  03:50 PM            16,765 mpio.h
01/31/2011  04:23 PM            13,668 mpi_base.mod
01/31/2011  04:23 PM            30,866 mpi_constants.mod
01/31/2011  04:23 PM             7,802 mpi_sizeofs.mod
              16 File(s)        268,047 bytes
               2 Dir(s)  221,505,830,912 bytes free

Есть ли здесь что-нибудь, чего можно было бы пропустить?

Я довольно озадачен в этом пункте. Любое предложение будет полезно.

С уважением, Баренд.

PS: Вероятно, это должно быть помечено "haskell-mpi", но я не могу делать новые теги. Я думаю, что никто еще не использует его на самом деле.

РЕДАКТИРОВАТЬ: Следуя предложению Дона,

Я установил MingGW и MSYS. После запуска обновления mingw-get я использовал mingw32-get для получения libtools, mingw32-utils и mingw32-binutils. Я установил следующие переменные среды для всей системы с помощью графического интерфейса Windows:

LIBRARY_PATH="C:\Program Files\MPICH2\lib"
C_INCLUDE_PATH="C:\Program Files\MPICH2\include"

echo $LIBRARY_PATH а такжеecho %LIBRARY_PATH% теперь оба работают как положено, никаких сюрпризов нет. Переменные среды установлены. Продвигается.

cabal install haskell-mpi по-прежнему производит тот же вывод, что и раньше.

Давно играл с лд, огромной красной селедкой ...

Мне пришлось скрыть libmpi.a от ld, чтобы он заработал, но теперь haskell-mpi собирается!

Размещаем пошаговые подробности вверху.

Ответы на вопрос(1)

Ваш ответ на вопрос