2010-11-12 4 views
7

Ich habe eine Codebasis, die umfangreiche Verwendung von pthread.h. In einem Windows Visual Studio-Projekt funktioniert dies offensichtlich nicht, da Pthreads ein Unix-Dienstprogramm ist.Verwenden von pthread.h auf einem Windows-Build

Ich weiß, es existiert pthread-win32 oder etwas von der Art, aber gibt es eine Möglichkeit, eine Codebasis verwenden zu lassen, ohne den gesamten pthread-Code zu ersetzen?

edit: Ich würde lieber nicht alle pthread Anrufe durchlaufen und ersetzen müssen. Das ist meine Frage

+0

Vielleicht MinGW hilft ... – Vovanium

+0

Ich verstehe nicht. Sie sagen, Sie wissen, dass eine pthread-Bibliothek für win32 existiert, also warum benutzen Sie sie nicht? – jalf

Antwort

5

Ich würde Boost als eine Bibliothek empfehlen, die eine plattformunabhängige Thread-Abstraktion enthält. Ich glaube nicht, dass Sie irgendeinen Versuch finden werden, die Pthread-Funktionen selbst als befriedigend zu bezeichnen. Es ist auch nicht sehr schwer, pthread Win32 selbst zuzuordnen.

+0

+1 immer boost verwenden. – SingleNegationElimination

+4

Nicht sehr nützlich für jemanden, der eine vorhandene Codebasis hat, die pthreads verwendet, wo sie es vorziehen würden, den Threading-Code nicht neu schreiben zu müssen. :) – jalf

+0

Ich habe es schon oft gemacht. Global Search/Replace wurde aus einem bestimmten Grund erfunden. – bmargulies

2

Wenn der Code sehr stark * nixbasiert ist, haben Sie wahrscheinlich das beste Glück, ihn mit Cygwin + GCC zu kompilieren. Wenn Pthreads die einzige * nix-Abhängigkeit ist und Sie die Cygwin-Abhängigkeit vermeiden möchten, sollten Sie mit Pthreads-win32 gehen.

Verwandte Themen