私はMingw64 for Windowsを使用しています(もちろん)、私は通常静的にlibwinpthread.aとリンクしています。しかし、私はlibpthread.aというライブラリもあることに気付きました(勝利なし)。私は彼らが異なるサイズを持っていることを見ることができるので、何かが異なっていなければなりません。スレッドライブラリを含む非常に簡単なプログラムを作成した場合、-libwinpthreadの代わりに-libpthreadタグを使用すると、コンパイルされたコードのサイズが異なることがわかります。libwinpthread.aとlibpthread.aの違いは?
私はwinpthreadがBSDライセンスを使用していることを知っています。また、LinuxではpthreadがLGPLライセンスを使用しています。ライセンスについて何かできるのでしょうか?多分libpthreadはLGPLを使用しており、libwinpthreadはBSDを使用していますか?知りません。
ここに誰かが私を助けてくれることを願っています。私は別の結果を得るので、何かが異なっていなければなりません。
libwinpthread.aはlibpthread.aにリンクしていると思いますが、WindowsとLinuxの両方でpthreadを使用してシームレスにコンパイルすることができます。 Linux用にコンパイルしているだけの場合は、libwinpthreadをリンクする必要はありません。 – hoodaticus
おそらくそう:)。になり得る。しかし、私はこの質問を送った後、それらのファイルを比較するために16進エディタを使いました。 libthreadではテキスト "nanosleep.c"を見ることができますが、libwinpthreadでは存在しません。私は理由を知らない:(私は違いがあると思うが、私はすべてのバイトを比較するにはあまりにも怠惰だ:)。 – mikehog
Windowsでは契約のOSサポートがないため、Windowsではnanosleepを使用できません。これは基本的に私の理論を証明します。 – hoodaticus