簡體   English   中英

如何編譯同時使用 MPI 和 HDF5 的 C++ 文件?

[英]How do I compile a C++ file that uses both MPI and HDF5?

我正在創建 *.h5 文件,所以我一直在編譯:

h5c++ -o output myFile.cpp

但是,我添加了 MPI 以加速其中一節中的代碼。 同樣的編譯給了我一個未定義的參考錯誤。

undefined reference to `MPI_Init'

如何編譯代碼以便可以使用 MPI 和 HDF5?

您可以告訴 HDF5 包裝器使用 MPI 包裝器而不是您的 C++ 編譯器。 例如,如果您的 MPI 包裝器是mpiCC ,您可以簡單地

export HDF5_CXX=mpiCC
export HDF5_CLINKER=mpiCC

[此答案已被編輯]

mpicch5cc (以及它們的 C++ 對應物)都不是編譯器,而只是包裝器,它們只會在編譯器調用中添加一些標志。 這些標志通常包括鏈接庫和包含路徑。 您實際上可以檢查它們!

$ mpicc --showme    # OpenMPI
$ mpicc -show       # MPICH
$ h5cc  -show

所以你的問題的答案是:使用來自兩個包裝器的所有標志進行編譯器調用。

然而,通常你應該把它留給像 CMake 這樣的構建系統,它將組裝所有相關的編譯器標志。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM