zoukankan      html  css  js  c++  java
  • MinGW编译dll以及静态链接pthread

      最近用MinGW编译一个DLL,遇到几个小问题,记录一下

    1,DllMain不执行的问题

    DLL写好以后,功能测试ok,但是发现DllMain未执行,导致代码里的初始化和析构均未能执行,查了下生成的dll,发现由于是c++编译,导致DllMain被改名了,解决方法加上extern "C"

    2, 静态链接pthreadGC2

    用测试程序测试的时候,提示未找到pthreadGC2.dll,于是在MinGW的目录下搜索pthread,发现有个 pthreads-win32-README的文档,里面详细讲述了如何静态链接pthread,概括步骤如下:

    编译时定义PTW32_STATIC_LIB宏

    链接pthreadGC2-static和ws2_32库(不需要链接pthread)

    在调用pthread任何函数之前调用pthread_win32_process_attach_np()初始化(DLL在DLL_PROCESS_ATTACH分支下),结束后调用pthread_win32_process_detach_np()(DLL在下DLL_PROCESS_DETACH)

     3,如果在exe里也用到了多线程,重复2的步骤

  • 相关阅读:
    Centos7 JDK8安装配置
    select2
    docker 删除多个退出的容器
    redis 批量删除多个key
    Dockerfile 文件命令
    Docker部署go示例
    php 导入 excel 文件
    rabbitmq安装
    rabbitmq之php客户端使用实例
    k8s
  • 原文地址:https://www.cnblogs.com/Red_angelX/p/2668329.html
Copyright © 2011-2022 走看看