• 【转载】window下配置pthread的方法及出现问题的解决方法


    POSIX线程(POSIX threads),简称Pthreads,是线程的POSIX标准。该标准定义了创建和操纵线程的一整套API。在类Unix操作系统(Unix、Linux、Mac OS X等)中,都使用Pthreads作为操作系统的线程。Windows操作系统也有其移植版pthreads-win32。

    转载连接:https://blog.csdn.net/cry1994/article/details/79115394

    下载源码

    源码主页:https://sourceware.org/pthreads-win32/
    ftp地址:ftp://sourceware.org/pub/pthreads-win32

    下载最新版本pthreads-w32-2-9-1-release.zip解压得到三个文件夹

    Pre-built.2

    Pre-build.2 里面包含了pthreads for win32 的头文件和库文件;

    pthreads.2

    pthreads.2 里面包含了pthreads 的源代码;

    QueueUserAPCEx

    QueueUserAPCEx 里面是一个alert的driver,编译需要DDK 。Windows Device Driver Kit (NTDDK.h) 需要额外单独安装。

    直接使用or编译源码

    1.直接使用

    Pre-built.2这个文件夹下有三个文件夹
    dll 动态链接库
    include头文件
    lib 静态链接库

    1.1配置头文件

    把include文件夹下的头文件拷贝到vs2017安装目录下

    D:Program Files (x86)Microsoft Visual Studio2017ProfessionalVCToolsMSVC14.11.25503include

    1.2配置静态链接库

    把lib文件夹下的静态库文件拷贝到vs2017安装目录下

    D:Program Files (x86)Microsoft Visual Studio2017ProfessionalVCToolsMSVC14.11.25503lib

    1.3配置动态链接库

    Pre-built.2dllx86下的文件拷贝到C:WindowsSysWOW64目录下
    Pre-built.2dllx64下的文件拷贝到C:WindowsSystem32目录下

    测试

    #include <pthread.h>
    #pragma comment(lib,"pthreadVC2.lib")
    int main()
    {
        return 0;
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    编译错误C2011 “timespec”:“struct”类型重定义

    可修改pthread.h文件,在
    #if !defined( PTHREAD_H )
    #define PTHREAD_H
    下面加上一行宏定义
    #define HAVE_STRUCT_TIMESPEC
    可以解决“timespec”:“struct”类型重定义错误
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    至此,已经可以在VS2017中使用。如果不想改动到VS2017的目录和系统目录,可以通过配置工程项目属性,设置附加包含目录/链接器附加依赖库等选项,从而达到使用pthread库的目的。

    2.编译pthread源码

    暂时懒得研究。就酱,用着先。

  • 相关阅读:
    Mysql锁机制介绍
    开启Mysql慢查询来优化mysql
    开启mysql慢查询日志并使用mysqldumpslow命令查看
    MySQL MyISAM/InnoDB高并发优化经验
    UIPageControl
    UIPikerView的属性
    UIScrollView
    UISement属性
    UISlide属性
    UISwitch
  • 原文地址:https://www.cnblogs.com/bookdrip/p/10149370.html
Copyright © 2020-2023  润新知