問題は解決しました!
- ここに投稿されたドンの指示に従ってください
- 環境変数を開きます([マイコンピューター]-> [プロパティ](コンテキストメニュー内)-> [詳細])
C_INCLUDE_PATH
MPIのインクルードディレクトリを指すように、新しい環境変数を追加または作成します。私の場合、/c/program files/mpich2/include
。LIBRARY_PATH
MPIのlibディレクトリを指すように、新しい環境変数を追加または作成します。私の場合、/c/program files/mpich2/lib
- どういうわけかlibmpi.aを非表示にします。必要に応じて、後で修正できます。これはハックですが、ldが失敗するため、これを行わずにhaskell-mpiをビルドすることはできません。名前を_libmpi.aに変更しました
これで、haskell-mpiはWindows上に構築されるはずです。今後さらにトラブルが発生することを予想していましたが、それが構築され、私の問題は解決しました。
大学のラボの1つにあるラボマシンでhaskell-mpiを使用して、並列コンピューティングクラスの最終プロジェクトを実行したいのですが、haskell-mpiをMPICH2に対してビルドしようとすると問題が発生します。
haskell-mpiはほとんど完全に文書化されておらず、gitリポジトリを掘り下げることで、いくつかのサンプルプログラムをプログラムすることができましたが、Windowsでのセットアップには何の役にも立ちませんでした。私の個人的なLinuxシステムでは、MPICH2に対してhaskell-mpiをセットアップして実行するのに問題はありませんでした。
問題はおそらく、カバールの1つ、MPICH2のインストール方法、またはhaskell-mpiのカバール構成にあるため、タグの選択にあります。
トラブルシューティングのためにここで実験し、必要に応じて情報を追加することもできますが、最終的にはこれらのマシンにアクセスできなくなります。
これを実行するラボで管理者権限を持っているので、MPICH2のインストール自体に問題がある場合は、実際に再インストールできます。
haskell-mpiをインストールしようとすると、cabalは次のように失敗します。
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
、このライブラリを実際に構築できるように、依存関係をどのように満たすかを理解する必要があります。現時点で前述の2つのフォルダにあるものは次のとおりです。
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 updateを実行した後、mingw32-getを使用してlibtools、mingw32-utils、およびmingw32-binutilsを取得しました。Windows構成GUIを使用して、システム全体に対して次の環境変数を設定しました。
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
それでも以前と同じ出力を生成します。
ldで長い間遊んだ、巨大な赤いニシン...
libmpi.aをldから非表示にして機能させる必要がありましたが、haskell-mpiがビルドされるようになりました。
ステップバイステップの詳細を一番上に置きます。