4

並列コードを書くために gcc で OpenMP を使用しました。現在、Visual C++ 2005 を使用しており、OpenMP の使用方法を理解しようとしています。Properties->C/C++/Language メニューにコンパイラ オプションがありますが、ライブラリが見つからないというメッセージが表示されます。OpenMP 用のサード パーティの実装はありますか、それとも Visual C++ の構成が間違っているだけですか?

4

3 に答える 3

6

VC 2005 ではそのまま使用できると思いますが、すべてのバージョンで提供されているかどうかはわかりません。

あなたが添付する場合

/openmp

オプションには、オープン mp ヘッダーも含める必要があります

#include <omp.h>

このヘッダーはアプリケーションにマニフェストを追加し、正しいシステム パスから vcomp.dll をロードできるようにするため、これは重要です。そのため、通常、vcomp.dll やその他のシステム dll を実行可能ファイルの下にコピーすることは許可されなくなりましたが、正しい場所から dll をロードするには、アプリケーションのマニフェストをポンピングする必要があります。これは、omp.h ヘッダーによって自動的に行われません。

したがって、自分でマニフェストを変更したくない場合の最小限のコードは次のとおりです。

#include <omp.h> // has to include this header to build the correct manifest to find vcom.dll or vcompd.dll

int main(int argc, char* argv[])
{
  double sum;
#pragma omp parallel for
  for(int i = 0; i < 10000; ++i) {

  }
    return 0;
}
于 2009-06-15T14:10:17.053 に答える