windows - Meaning of options in mingw-w64 installer -


in mingw-w64 online installer there several fields can select. cannot find documentation on this, , guesses i've made don't give me behaviour want.

clearly lot of work has gone project seems pity uptake being held lack of basic documentation.

the "version" , "architecture" fields self-explanatory other fields have trouble (values shown of current installer):

  • threads, options posix , win32
  • exception, options dwarf , sjlj
  • build revision, options 0, 1, 2.

the values chose on previous install win32, seh , 1 (clearly options have changed since none wiser what's what).

what pros , cons of each option, threading model , exception handling, , version "best"?

the specific problems have encountered using x86_64-win32-seh-rev1 are:

  • std::thread , std::condition_variable not supported
  • when debugging (using code::blocks ide), if exception thrown not jump exception handler; selecting next line nothing 3 times , aborts run.

i can cope debugging problem nice have working c++11 threads.

exceptions

please see this answer 3 models (dwarf, sjlj , seh).

threads

you can decide kind of threads want use: posix threads or windows api threads. posix threads have advantage of portability; can use code on other posix platforms (eg. linux) without modifications. win32 threading api windows only. if 100% on windows , it's api that's no problem though.

if use new c++ features std::thread impact less visible since have standard api threading. i'm not sure if there's big difference if 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 version number since mingw(-w64) follows gcc versions (4.8.x, 4.9.x etc.). if don't need specific build, should use latest version.

threading issue

if exception thrown is:

terminate called after throwing instance of 'std::system_error'   what():  enable multithreading use std::thread: operation not permitted 

then link pthreads - , problem solved.


recommendation

if don't have reasons use specific option; personal recommendation:

posix - dwarf - 2 
  • posix enable c++11 <thread>, <mutex> , <future>
  • dwarf faster
  • 2 because it's latest release

Comments

Popular posts from this blog

php - failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request -

java - How to filter a backspace keyboard input -

java - Show Soft Keyboard when EditText Appears -