Dans divers projets C et C ++ -pthread
j’ai vu le drapeau -pthread
appliqué à la fois à la compilation et à la phase de liaison, alors que d’autres ne l’utilisaient pas du tout et passaient simplement -lpthread
à la phase de liaison.
Y a-t-il un danger à ne pas comstackr et à lier avec l’indicateur -pthread
– c.-à-d. -pthread
fait réellement -pthread
? Je m’intéresse principalement aux plateformes Linux.
Essayer:
gcc -dumpspecs | grep pthread
et recherchez tout ce qui commence par %{pthread:
Sur mon ordinateur, les fichiers sont compilés avec -D_REENTRANT
et liés à -lpthread
. Sur d’autres plates-formes, cela pourrait être différent. Utilisez -pthread
pour la plupart des portabilités.
L’utilisation de _REENTRANT
, sur GNU libc, modifie le fonctionnement de certains en-têtes de libc. À titre d’exemple spécifique, errno
appelle une fonction renvoyant un emplacement local de thread.
De l’ man gcc
:
-pthread Ajoute un support pour le multithreading avec la bibliothèque pthreads. Cette option définit des indicateurs à la fois pour le préprocesseur et l’éditeur de liens.