Укажите OpenMP для GCC

Для OpenMP, когда мой код использует функции в своем API (например, omp_get_thread_num ()) без использования его директив (таких как те #pragma omp ...),

  1. почему напрямую указывается libgomp.a в gcc вместо использования -fopenmp не работает, например

     gcc hello.c /usr/lib/gcc/i686-linux-gnu/4.4/libgomp.a -o hello
     

    Обновление: Я только что обнаружил, что ссылка на libgomp.a не работает, но связь с libgomp.so работает. Означает ли это, что OpenMP нельзя связывать статически?

  2. Почему -fopenmp работает только без указание файлов библиотеки

     gcc hello.c -fopenmp -o hello
     

    Обновление: Другими словами, почему при использовании -fopenmp не требуется явная ссылка на libgomp.so?

  3. Почему это также компилируется:

     gcc hello.c -L / usr / lib  /gcc/i686-linux-gnu/4.4/ -lgomp -o привет
     

    Будет ли игнорироваться директива OpenMP в коде, если он есть?

С уважением!

24
задан Tim 15 June 2011 в 17:17
поделиться