compilation - -fopenmp flag in compile and link -
i have openmp code
#include <omp.h> #include <stdio.h> int main() { #pragma omp parallel { fprintf(stderr, "thread %d\n", omp_get_thread_num()); } return 0; }
when compile , link , use -fopenmp
gcc-6 -std=c99 -wall -wextra -pedantic -fopenmp -iinclude -c -o build/main.o src/main.c gcc-6 -o bin/main build/main.o -fopenmp
the code work
$ ./bin/main thread 0 thread 1 thread 2 thread 3
but don't when put flag in link
gcc-6 -std=c99 -wall -wextra -pedantic -iinclude -c -o build/main.o src/main.c src/main.c: in function 'main': src/main.c:6:0: warning: ignoring #pragma omp parallel [-wunknown-pragmas] #pragma omp parallel gcc-6 -o bin/main build/main.o -fopenmp
the code work not in parallel
$ ./bin/main thread 0
why need add -fopenmp
in compile , link time?
why need add -fopenmp in compile , link time?
because required both @ compile time (to enable #pragma omp
handling) , @ link time (to link required support libraries).
Comments
Post a Comment