Pthread Dynamic Library naming rules

Source: Internet
Author: User

Library naming
--------------

Because The library is being built using various exception
Handling schemes and Compilers-and because the library
May isn't work reliably if these is mixed in an application,
Each different version of the library has it ' s own name.

Note 1:the incompatibility is really between EH implementations
of the different compilers. It should is possible to use the
Standard C version from either compiler with C + + applications
Built with a different compiler. If you use the an EH version of
The library, then you must use the same compiler for the
Application. This is another complication and dependency that
Can is avoided by using only the standard C library version.

Note 2:if You use a standard C pthread*.dll with a C + +
application, then any functions so define that is
Intended to is called via Pthread_cleanup_push () must be
__cdecl.

Note 3:the intention is to also name either the VC or GC
Version (it should be arbitrary) as pthread.dll, including
Pthread.lib and libpthread.a as appropriate. This is no longer
Likely to happen.

Note 4:the compatibility number is added so, applications
Can differentiate between binary incompatible versions of the
Libs and DLLs.

In general:
Pthread[vg]{se,ce,c}[c].dll
Pthread[vg]{se,ce,c}[c].lib

where
[VG] indicates the compiler
V-ms VC, or
G-gnu C

{Se,ce,c} indicates the exception handling scheme
Se-structured EH, or
Ce-c++ EH, or
C-no exceptions-uses setjmp/longjmp

C-dll compatibility number indicating ABI and API
Compatibility with applications built against
A snapshot with the same compatibility number.
See ' Version numbering ' below.

The name may also is suffixed by a ' d ' to indicate a debugging version
The library. e.g. PthreadVC2d.lib. Debugging versions contain
Additional information for debugging (symbols etc) and is often not
Optimised in any (compiled with optimisation turned off).

Examples:
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 with PthreadVC.dll)
PthreadVC2.dll (Msvc/not dependent on Exceptions-not binary
Compatible with PthreadVC1.dll or PthreadVC.dll)

The GNU library archive file names has correspondingly changed to:

Libpthreadgcec.a
Libpthreadgcc.a

Pthread Dynamic Library naming rules

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.