Andere Tipps

Für mich ich gerade verwende 64-Bit-Windows-Compiler (mingw-w64 Cross-Compiler in diesem speziellen Fall), dann machen (with2.9.1) wie:

$ make clean GC-static 

Dann, wie ich es für die Verwendung installieren (einige dies nicht erforderlich sein, natürlich),

cp libpthreadGC2.a $mingw_w64_x86_64_prefix/lib/libpthread.a
cp pthread.h sched.h semaphore.h $mingw_w64_x86_64_prefix/include

dann, es zu benutzen, müssen Sie diese (zB ffmpeg Konfigurationszeile, es zu benutzen) definieren:

--extra-cflags=-DPTW32_STATIC_LIB 

Wie auch immer, das ist ein Weg.

Eine andere Möglichkeit ist, das gleiche zu tun, dann die * .h-Dateien ändern und alle Verweise entfernen Header Dllexport (oder manuell DPTW32_STATIC_LIB in den Header definieren).

ex:

 sed 's/ __declspec (dllexport)//g;s/ __declspec (dllimport)//g'

(ref: zeranoe Build-Skripte)

Hier ist, wie ich es tat (VS2015). Sollte auch für ältere von Visual Studios arbeiten.

1) Laden Sie die Release .zip von Source
2) Entpacken Sie auf eine saubere Ordner- sollte „pthreads.2“
sehen 3) Öffnen Sie Ihre Visual Studio-Eingabeaufforderung, navigieren Sie zu „pthreads.2.“ 4) Run "nmake", keine Argumente. Es erzeugt eine Hilfemeldung alle rechtlichen Befehle Auflistung können Sie ‚nmake‘ geben, es zu bauen. Weitere Informationen finden Sie unter „pthreads.2 \ FAQ“ Datei, die ihre 3 unterschiedliche Aromen der ‚Bereinigung‘ Handhabung erklärt.

Ich würde vorschlagen, Gebäude „VC“ und „VC-debug“ (und vielleicht auch die statisch diejenigen, von denen) nur. Der ‚echte‘ pthreads ist eine C-Systembibliothek auf POSIX-Plattformen wie Linux, so wird nur die Kombinationen werden Ihnen genau die gleiche C Fehlerverhalten auf Windows geben, die Sie auf Linux bekommen würden, FreeBSD, usw.

Diese Meldung helfen könnte.

erweitern kgriffs beantwortet eine zwei Dinge zu tun hat, um tatsächlich ein 64-Bit-DLL zu bauen und nicht die 32-Bit-DLL.

Erstes Download neueste pThreads über CVS (wie vorgeschlagen hier )

1) verwenden 64-Bit-Build-Tools - erreicht durch eine korrekte VC Umgebungseinstellungen in der Befehlszeile (weitere Informationen Laden hier ):

C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat amd64

(ändern Sie die 11,0 bis was auch immer Version Sie verwenden)

2) Wie es in der pThreads Makefile geschrieben:

  

TARGET_CPU ist eine Umgebungsvariable von Visual Studio-Eingabeaufforderung eingestellt   wie durch das SDK (VS 2010 Express Plus SDK 7.1) zur Verfügung gestellt   PLATFORM ist eine Umgebungsvariable, die in dem VS 2013 Express x64 Quer eingestellt werden können   Entwicklungsumgebung

Das bedeutet, dass, wenn sie nicht durch die vcvars (in meinem Fall war es nicht) getan wurde, um Sie TARGET_CPU oder PLATFORM gesetzt (nur für den Fall setze ich sie beide):

set TARGET_CPU=x64 set PLATFORM=x64

3) und nun den letzten Schritt:

nmake clean VC nmake clean VC-debug

Dies wird eine 64-Bit-DLL-Dateien (und richtige Import-Bibliothek und PDB) machen. Ich kann bestätigen, dass es mit Visual Studio 2012 funktioniert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top