zoukankan      html  css  js  c++  java
  • pthread动态库命名规则

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

    Because the library is being built using various exception
    handling schemes and compilers - and because the library
    may not work reliably if these are 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 be possible to use the
    standard C version from either compiler with C++ applications
    built with a different compiler. If you use an EH version of
    the library, then you must use the same compiler for the
    application. This is another complication and dependency that
    can be 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 that you define that are
    intended to be called via pthread_cleanup_push() must be
    __cdecl.

    Note 3: the intention was 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 was added so that 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 be suffixed by a 'd' to indicate a debugging version
    of the library. E.g. pthreadVC2d.lib. Debugging versions contain
    additional information for debugging (symbols etc) and are often not
    optimised in any way (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 have correspondingly changed to:

    libpthreadGCEc.a
    libpthreadGCc.a

  • 相关阅读:
    0x80070522:客户端没有所需的特权的解决方法(win7,win10通过)
    asp类型转换函数汇总 转贴
    web开发中 代码解决部分IE兼容问题
    关于系统弹出错误:429 , ActiveX 部件不能创建对象 的解决方法
    关于奥威亚自动录播系统的设置使用小笔记
    网络克隆--机房利器(acer自带还原)
    raid的一些简单知识
    sharepoint 2013 sp1 patch安装后的手工运行
    Sharepoint 2013 多服务器域的目录服务器和搜索服务的配置
    加速安装 Sharepoint 2013 SP1
  • 原文地址:https://www.cnblogs.com/guoxiaoqian/p/4380643.html
Copyright © 2011-2022 走看看