• 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的步骤

  • 相关阅读:
    MongoClient类
    MongoDB基本操作(增删改查)
    为什么MongoDB适合大数据的存储?
    npm的使用
    nodejs安装教程
    c#byte数组和string类型转换
    C#中数组、ArrayList和List三者的区别
    eclspse魔板
    mysql的备份
    shell的使用
  • 原文地址:https://www.cnblogs.com/Red_angelX/p/2668329.html
Copyright © 2020-2023  润新知