Utiliser les pthreads dans MinGW dans Win7
2015-1-20, j'utilise MinGW dans mon Win7, essayez de compiler mon code source avec MinGW et des Pthreads. Le MinGW a déjà le soutien des threads POSIX, Dans le "Gestionnaire d'Installation de MinGW", nous pouvons installer les pthreads dev paquet et pthreads lib.
Mais quand je compile mon code source, il y a une erreur: struct timespec redéfinition, d'abord en pthread.h, puis dans unistd.h, je ne sais pas pourquoi.
Avant cela, en fait j'ai installer minGW sans les pthreads dev et lib paquet, j'ai télécharger le pthreads-pour-win32 code source et de le construire à l'échelle locale. J'ai utiliser -I/quelque part -L/quelque part -lpthreadGC2 lien à mon code source, et cela a fonctionné.
Mais cette fois, il échoue avec MinGW auto package. J'ai besoin d'aide.
Je ne peux pas télécharger une photo pour vous montrer les détails....
OriginalL'auteur linrongbin | 2015-01-20
Vous devez vous connecter pour publier un commentaire.
En fait, j'ai trouver une solution.
Ne comprennent pas "unistd.h" après le "pthread.h", la winapi à la place.
Il est facile de code avec "pthreads" avec gcc sous Linux, mais ce n'est pas de soutenir dans Win7, utiliser le "Gestionnaire d'Installation de MinGW" (google "mingw" et télécharger) à installer.
Choisissez le "mingw32-pthreads-win32" dev paquet dans "MinGW Bibliothèque Standard" lorsque vous installez le mingw, alors vous n'avez pas besoin de télécharger pthreads-pour-win32 code source ou de le construire localement. Mais le "pthread.h" va entrer en conflit avec "unistd.h", dans Windows, il faut utiliser l'API Windows au lieu de linux API.
/c/vw-master/vw-c' gcc vw.c -o ../bin/vw -lm -pthread -O3 -Wall -march=native -funroll- loops -Wno-unused-result vw.c:19:21: fatal error: pthread.h: No such file or directory compilation terminated. make: *** [vw] Error 1 make: Leaving directory
/c/vw-master/vw-c' Avez-vous fait des changements au CHEMIN d'accès ou autre chose?Qu'entendez-vous par "nous devrions utiliser les API de Windows au lieu de linux API", pouvez-vous donner un exemple...?
merci pour votre réponse, j'ai résolu ce problème en fin de compte.
OriginalL'auteur linrongbin