中間子で構築されたCプロジェクトでのOpenMPを使用する方法、私はCプロジェクトでのOpenMPを使用したい...私はCを中間子とするのは非常に新しいです
をご容赦ください私はメソーンをビルドツールとして使用しています。
の例をtutorialからコンパイルしたいとします。 私main.c
は非常に似ています:
#include <omp.h>
#define N 1000
#define CHUNKSIZE 100
int main(int argc, char *argv[]) {
int i, chunk;
float a[N], b[N], c[N];
/* Some initializations */
for (i=0; i < N; i++)
a[i] = b[i] = i * 1.0;
chunk = CHUNKSIZE;
#pragma omp parallel for \
shared(a,b,c,chunk) private(i) \
schedule(static,chunk)
for (i=0; i < N; i++)
c[i] = a[i] + b[i];
return 0;
}
私の短いmeson.build
ファイルがこれを含んでいます
project('openmp_with_meson', 'c')
# add_project_arguments('-fopenmp', language: 'c')
exe = executable('some_exe', 'src/main.c') #, c_args: '-fopenmp')
私はここexecutable
への呼び出しでc_args
キーワードをコメントアウト。
は今、私は次のシナリオで終わる:オプションで../src/main.c:15:0: warning: ignoring pragma omp parallel [-Wunknown-pragmas] #pragma omp parallel for
c_args: '-fopenmp'
:'-fopenmp'
オプションなしで
- 、私は
pragma
が不明であり、(私が期待したように)無視されるという警告を取得します挿入された、私の代わりに私がGOMP_parallel
、omp_get_num_threads
とomp_get_thread_num
に未定義の参照のエラーを取得し、私はプログラムのコンパイルgcc -Wall -o manually_with_gcc ../src/main.c -fopenmp
とexecuを使って手動でのgccを使用する場合は何も - を内蔵していない取得し、もはや上記の警告を得ることはありません何のエラーもありません。
実行可能ファイルをメソーンでコンパイルする方法を教えてもらえますか?