2

openmpiを使用してプログラムをコンパイルしようとしていますが、コードでエラーは発生しませんが、代わりにmpiヘッダーの1つでエラーが発生します。

/usr/include/openmpi-x86_64/openmpi/ompi/mpi/cxx/mpicxx.h:168: error: expected identifier before numeric constant
/usr/include/openmpi-x86_64/openmpi/ompi/mpi/cxx/mpicxx.h:168: error: expected unqualified id before numeric constant

ヘッダーの関連するコード行は、次のようになっています。

namespace MPI {

私はmpiCCコンパイラを使用しています。私は何か間違ったことをしていますか?またはこれはopenmpiのバグですか?

前もって感謝します。

4

1 に答える 1

1

発生した問題を再現することはできませんが、次のコメントが に含まれていますmpi.hmpicxx.h

/*                                                                             
 * Conditional MPI 2 C++ bindings support.  Include if:
 *   - The user does not explicitly request us to skip it (when a C++ compiler
 *       is used to compile C code).
 *   - We want C++ bindings support
 *   - We are not building OMPI itself
 *   - We are using a C++ compiler
 */
#if !defined(OMPI_SKIP_MPICXX) && OMPI_WANT_CXX_BINDINGS && !OMPI_BUILDING
#if defined(__cplusplus) || defined(c_plusplus) 
#include "openmpi/ompi/mpi/cxx/mpicxx.h"
#endif
#endif

非推奨の C++ バインディングを使用していない場合、考えられる回避策は追加することです

-DOMPI_SKIP_MPICXX

あなたにCXXFLAGS。これが役立つことを願っています。

于 2012-10-03T15:30:10.307 に答える