問題已解決!找不到cabal在Windows上找到haskell-mpi的mpi庫
- 按照說明笠頭貼here
- 打開你的環境變量(我的電腦 - >屬性(在上下文菜單) - >高級)
- 加入或創建一個新的環境變量
C_INCLUDE_PATH
所以指向MPI的包含目錄。在我的情況下,/c/program files/mpich2/include
。 - 添加或創建一個新的環境變量
LIBRARY_PATH
因此它指向MPI的lib目錄。在我的情況下,/c/program files/mpich2/lib
- 以某種方式隱藏libmpi.a。如果需要,您可以稍後解決。這是一個黑客,但你不能建立haskell-mpi,因爲ld會失敗。我將它重命名爲_libmpi.a
現在haskell-mpi應該在windows上生成。預計更多的麻煩,但它的建立,它解決了我的問題。
,我想在我的大學實驗室做我最後的項目我的並行計算類的一個實驗室機器上使用哈斯克爾-MPI,但我遇到了麻煩試圖讓哈斯克爾-MPI構建針對MPICH2。
haskell-mpi幾乎完全沒有記錄,並通過他們的git存儲庫進行挖掘幫助我編寫了一些示例程序,但沒有做任何事情來幫助我在Windows上進行設置。在我的個人linux系統上,我沒有麻煩設置並運行鍼對MPICH2的haskell-mpi。
問題可能出在cabal上,MPICH2的安裝方式,或與haskell-mpi的cabal配置,因此選擇標籤。
爲了解決問題並在需要時添加更多信息,我願意在此嘗試,但最終我將無法再訪問這些機器。
我在實驗室中擁有管理員權限,因此如果問題出在MPICH2安裝本身上,我確實可以重新安裝它。
小集團,當我嘗試安裝哈斯克爾-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-迪爾斯和--extra,包括 - 迪爾斯:
--extra-lib-dirs="C:\Program Files\MPICH2\lib"
--extra-include-dirs="C:\Program Files\MPICH2\include"
我試過重新排序我在那裏放置這些標誌,逃避反彈,使用短路徑PROGRA~1
和這些的各種排列。所以我認爲這不會有幫助。我需要知道mpi
依賴關係的實際含義,並弄清楚我將如何滿足它,以便該庫可以實際構建。下面是在上述兩個文件夾,在這一刻是什麼生活:
利布斯:
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
有什麼在這裏,可能是可辨別缺失?
我很困惑這一點。幾乎任何建議都會有所幫助。
此致,Barend。
PS:這可能應該被標記爲「haskell-mpi」,但我不允許製作新標籤。我猜其他人還沒有真正使用它。
編輯:繼笠頭的建議,
我安裝MingGW和MSYS。運行mingw-get更新後,我使用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很長一段時間,巨大的紅色鯡魚...
我不得不從LD隱藏libmpi.a得到它的工作,但哈斯克爾-MPI現在建立!
將步驟細節放在頂部。
這是爲什麼太局部化?不要緊,它現在已經關閉了,因爲dons已經回答了它,但它應該適用於任何想在Windows上使用haskell-mpi的人。 – 2012-08-29 20:38:03