Ich benutze Mingw64 für Windows (natürlich), und ich stehe normalerweise statisch gegen libwinpthread.a. Aber ich habe bemerkt, dass es auch eine Bibliothek namens libpthread.a gibt (ohne den Gewinn). Ich kann sehen, dass sie unterschiedliche Größen haben, also muss etwas anders sein. Wenn ich ein sehr einfaches Programm mit Thread-Bibliothek erstellt, kann ich sehen, dass der kompilierte Code auch in anderen Größen ist, wenn ich das Tag -libpthread anstelle von -libwinpthread verwenden.Der Unterschied zwischen libwinpthread.a und libpthread.a?
Ich weiß, dass winpthread eine BSD-Lizenz verwendet. Und in Linux nutzt pthread die LGPL-Lizenz. Kann es also etwas an der Lizenz geben? Vielleicht benutzt libpthread LGPL und libwinpthread benutzt BSD? Ich weiß es nicht.
Ich hoffe, dass jemand hier mir helfen kann. Etwas muss anders sein, denn ich bekomme ein anderes Ergebnis.
Ich vermute - raten - dass libwinpthread.a verbindet libpthread.a und soll Ihnen ermöglichen, nahtlos mit Pthreads unter Windows und Linux zu kompilieren. Wenn Sie nur für Linux kompilieren, glaube ich nicht, dass Sie libwinpthread überhaupt verknüpfen müssen. – hoodaticus
Vielleicht so :). Könnte sein. Aber nachdem ich diese Frage gesendet habe, habe ich einen Hex-Editor verwendet, um diese Dateien zu vergleichen. Und in libthread kann ich den Text "nanosleep.c" sehen, aber in libwinpthread existiert es nicht. Ich weiß nicht warum :(. Ich denke, es gibt mehr Unterschiede, aber ich bin zu faul, jedes Byte zu vergleichen :). – mikehog
Nanosleep ist unter Windows nicht verfügbar, da Windows für seinen Vertrag keine Betriebssystemunterstützung bietet. Dies beweist im Grunde meine Theorie. – hoodaticus