Meaning of options in mingw-w64 installer

后端 未结 1 438
一向
一向 2020-12-04 09:11

In the MinGW-W64 online installer there are several fields you can select. However I cannot find any documentation on this, and the guesses I\'ve made don\'t give me the be

相关标签:
1条回答
  • 2020-12-04 09:32

    Exceptions

    Please see this answer for all three models (dwarf, sjlj and seh).

    Threads

    You can decide what kind of threads you want to use: POSIX threads or Windows API threads. The posix threads have the advantage of portability; you can use your code on other posix platforms (eg. linux) without modifications. The win32 threading api is windows only. If you are 100% on windows and like it's api that's no problem though.

    If you use new C++ features like std::thread the impact is less visible since you already have a standard api for threading. I'm not sure if there's really a big difference if you don't use posix- / win32 thread api directly (maybe std::thread native handles?)

    See also: mingw-w64 threads: posix vs win32

    Build revision

    I guess that's just another version number since Mingw(-w64) follows GCC versions (4.8.x, 4.9.x etc.). If you don't need an specific build, you should use the latest version.

    Threading issue

    If the exception thrown is:

    terminate called after throwing an instance of 'std::system_error'
      what():  Enable multithreading to use std::thread: Operation not permitted
    

    then just link pthreads - and the problem is solved.


    Recommendation

    If you don't have reasons to use a specific option; my personal recommendation:

    posix - dwarf - 2
    
    • Posix enable C++11 <thread>, <mutex> and <future>
    • dwarf is faster
    • 2 because it's the latest release
    0 讨论(0)
提交回复
热议问题