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_variablenot 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
Post a Comment