Featured post
windows - pthread win32 version? (Mongoose) -
please tell me difference between pthread versions: vc2, vce2 , vse2? how choose of them must use visual c++ express 2010 mongoose webserver library?
thank you!!!
- vce - msvc dll c++ exception handling
- vse - msvc dll structured exception handling
- vc - msvc dll c cleanup code
which 1 you'd want use vc++ express 2010 depends on how want pthread clean handled. if you're linking mongoose webserver (which i'm not familiar with), think you'll want use exception handling model code compiled with.
the pthreads win32 library goes fair bit of detail:
library naming
because library being built using various exception handling schemes , compilers - , because library may not work reliably if these mixed in application, each different version of library has it's own name.
note 1: incompatibility between eh implementations of different compilers. should possible use standard c version either compiler c++ applications built different compiler. if use eh version of library, must use same compiler application. complication , dependency can avoided using standard c library version.
note 2: if use standard c pthread*.dll c++ application, functions define intended called via pthread_cleanup_push() must __cdecl.
note 3: intention name either vc or gc version (it should arbitrary) pthread.dll, including pthread.lib , libpthread.a appropriate. no longer happen.
note 4: compatibility number added applications can differentiate between binary incompatible versions of libs , dlls.
in general: pthread[vg]{se,ce,c}c.dll pthread[vg]{se,ce,c}c.lib
where: [vg] indicates compiler v - ms vc, or g - gnu c
{se,ce,c} indicates exception handling scheme se - structured eh, or ce - c++ eh, or c - no exceptions - uses setjmp/longjmp
c - dll compatibility number indicating abi , api compatibility applications built against snapshot same compatibility number. see 'version numbering' below.
the name may suffixed 'd' indicate debugging version of library. e.g. pthreadvc2d.lib. debugging versions contain additional information debugging (symbols etc) , not optimised in way (compiled optimisation turned off).
for example: pthreadvse.dll (msvc/seh) pthreadgce.dll (gnuc/c++ eh) pthreadgc.dll (gnuc/not dependent on exceptions) pthreadvc1.dll (msvc/not dependent on exceptions - not binary compatible pthreadvc.dll) pthreadvc2.dll (msvc/not dependent on exceptions - not binary compatible pthreadvc1.dll or pthreadvc.dll)
the gnu library archive file names have correspondingly changed to:
libpthreadgcec.a libpthreadgcc.a
if want see differences each of these clean models, search "__cleanup
" in pthreads win32 source (there few places different clean models come play).
- Get link
- X
- Other Apps
Comments
Post a Comment