Spécifier OpenMP pour GCC

Pour OpenMP, lorsque mon code est l'utilisation des fonctions de son API (par exemple, omp_get_thread_num ()), sans l'aide de ses directives (comme ceux de #pragma omp ...),

  1. pourquoi spécifiant directement libgomp.un de
    gcc au lieu de l'aide -fopenmp
    ne fonctionne pas, comme

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

    Mise à jour: je viens de trouver ce qui relie à libgomp.un ne fonctionne pas, mais en les reliant à libgomp.donc il fonctionne. Signifie-t-il OpenMP ne peut pas être statique lié?

  2. Pourquoi -fopenmp ne fonctionne que sans
    spécifier les fichiers de bibliothèque

    gcc hello.c -fopenmp -o hello

    Mise à jour: En d'autres termes, lors de l'utilisation d'-fopenmp, pourquoi la liaison explicite à libgomp.il n'est donc pas nécessaire?

  3. Pourquoi est-ce aussi de la compilation:

    gcc hello.c -L/usr/lib/gcc/i686-linux-gnu/4.4/ -lgomp -o hello

    Sera-ce ignorer les directives OpenMP
    dans le code si il est tout?

Merci et salutations!

  • À partir de la documentation de GCC: -fopenmp drapeau arrange aussi pour la liaison automatique de la OpenMP la bibliothèque d'exécution. Voir ici: gcc.gnu.org/onlinedocs/libgomp/...
InformationsquelleAutor Tim | 2011-06-15