0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Windows下使用pthread-开发环境搭建

嵌入式USB开发 来源:嵌入式USB开发 作者:嵌入式USB开发 2023-06-08 10:32 次阅读

本文转自公众号,欢迎关注

Windows下使用pthread-开发环境搭建 (qq.com)

一.Windows下使用pthread-开发环境搭建

图片

1.1 下载源码

1.https://sourceforge.net/projects/pthreads4w/files/ 比官网新一点2018年 3.0版本

2.https://sourceware.org/pthreads-win32/ 官网 最新2012年 2.9.1版本

ftp://sourceware.org/pub/pthreads-win32/ 源码下载

https://sourceware.org/pthreads-win32/manual/index.html API参考

3.https://github.com/GerHobbelt/pthread-win32 适配了MSVC的版本

1.2 库编译

使用上述第3个资源,因为MSVC编译环境都适配好了。

这里使用MSVC2022

打开pthread-win32\\windows\\VS2022\\pthread.2022.sln,

有三个工程分别是,生成动态链接库dll,静态链接库lib和测试的工程。

图片

点击左侧目录,解决方案’pthread.2022’

菜单栏点击 生成->生成解决方案 开始构建

图片

生成的dll和lib位于pthread-win32\\windows\\VS2022\\bin\\Debug-Unicode-64bit-x64下

其中

动态链接库使用

pthread.dll

pthread.dll

静态链接库使用

pthread_static_lib.lib

1.3 测试

在解决方案目录,右键点击属性

图片

修改启动项目

图片

然后点击如下图标运行

图片

pthread-win32\\tests\\wrapper4tests_1.c中测试用例

TEST_WRAPPER(test_sequence2);会失败

先注释掉该用例。

看到测试结果如下:

图片

1.4 在自己工程中使用

1.4.1 使用静态链接库

新建空白WIN32程序

将上述的

pthread.dll

pthread.lib

pthread_static_lib.lib

复制到工程目录Src/pthread/lib下

图片

将源码pthread-win32下的所有.h文件复制到

复制到工程目录Src/pthread/inc下

图片

右键点击工程名->属性

图片

设置Lib文件夹路径

$(MSBuildProjectDirectory)\\Src\\pthread\\lib;

图片

设置lib文件

图片

设置头文件包含路径$(MSBuildProjectDirectory)\\Src\\pthread\\inc;

图片

添加源文件main.c,内容如下

创建两个线程,分别延时不同时间。

#include < stdio.h >
#include < pthread.h >


static void* thread1(void* arg)
{
  const struct timespec interval = { 1L, 500000000L };
  while (1)
  {
    pthread_delay_np(&interval);
    printf("thread1\\r\\n");
  }
  return 0;
}


static void* thread2(void* arg)
{
  const struct timespec interval = { 3L, 0L };
  while (1)
  {
    pthread_delay_np(&interval);
    printf("thread2\\r\\n");
  }
  return 0;
}


int main(void) 
{
  pthread_t t1;
  pthread_t t2;
  pthread_create(&t1, NULL, thread1, NULL);
  pthread_create(&t2, NULL, thread2, NULL);
  while (1);
}

构建项目,然后运行

可以看到基本是thread1运行两次thread运行1次,和其delay时间是两倍关系对应。

图片

使用静态链接库编译的话exe文件可直接运行。

1.4.2 使用动态链接库

与静态链接时一样

只是配置链接的库文件是pthread.lib

图片

运行时需要将exe文件和pthread.dll放在一起。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5082

    文章

    19111

    浏览量

    304857
  • WINDOWS
    +关注

    关注

    3

    文章

    3541

    浏览量

    88635
  • 开发环境
    +关注

    关注

    1

    文章

    225

    浏览量

    16611
  • 环境搭建
    +关注

    关注

    0

    文章

    53

    浏览量

    9052
收藏 人收藏

    评论

    相关推荐

    Windows基于MSVC搭建libjpeg开发环境

    Windows基于MSVC搭建libjpeg开发环境
    的头像 发表于 06-08 10:23 1711次阅读
    <b class='flag-5'>Windows</b><b class='flag-5'>下</b>基于MSVC<b class='flag-5'>搭建</b>libjpeg<b class='flag-5'>开发</b><b class='flag-5'>环境</b>

    Windows基于MSVC搭建libusb开发环境

    Windows基于MSVC搭建libusb开发环境
    的头像 发表于 06-08 10:25 3059次阅读
    <b class='flag-5'>Windows</b><b class='flag-5'>下</b>基于MSVC<b class='flag-5'>搭建</b>libusb<b class='flag-5'>开发</b><b class='flag-5'>环境</b>

    Windows基于MSVC搭建ffmpeg开发环境

    Windows基于MSVC搭建ffmpeg开发环境
    的头像 发表于 06-08 10:27 1935次阅读
    <b class='flag-5'>Windows</b><b class='flag-5'>下</b>基于MSVC<b class='flag-5'>搭建</b>ffmpeg<b class='flag-5'>开发</b><b class='flag-5'>环境</b>

    Windows基于MSVC搭建SDL开发环境

    Windows基于MSVC搭建SDL开发环境
    的头像 发表于 06-08 10:29 1583次阅读
    <b class='flag-5'>Windows</b><b class='flag-5'>下</b>基于MSVC<b class='flag-5'>搭建</b>SDL<b class='flag-5'>开发</b><b class='flag-5'>环境</b>

    开发环境搭建教程

    android Windows系统开发环境搭建
    发表于 03-22 17:42 0次下载

    搭建C语言开发环境Windows平台)汇总

    本文给大家汇总了5种在WIN平台下搭建C语言开发环境的方法,包括在Windows平台配置GNU环境,使用Sublime Test
    的头像 发表于 02-01 10:03 3729次阅读

    php开发环境搭建和使用

    本文主要介绍的是php开发环境搭建和使用。apache在默认情况下不会处理php页面,Apache处理php页面的步骤:即:php开发环境
    的头像 发表于 02-01 15:26 3454次阅读
    php<b class='flag-5'>开发</b><b class='flag-5'>环境</b>的<b class='flag-5'>搭建</b>和使用

    ESP32教程——Windows开发环境搭建.pdf下载

    ESP32教程——Windows开发环境搭建.pdf
    发表于 04-14 10:41 47次下载
    ESP32教程——<b class='flag-5'>Windows</b><b class='flag-5'>开发</b><b class='flag-5'>环境</b><b class='flag-5'>搭建</b>.pdf下载

    如何在Windows系统安装搭建PHP环境

    这两天刚装好Windows 7,碰巧前段时间有朋友问我Windows 如何安装搭建PHP 环境,所以打算勤劳
    发表于 08-09 16:56 13次下载

    ESP32教程之如何在Windows系统上搭建开发环境

    本文档的主要内容详细介绍的是ESP32教程之如何在Windows系统上搭建开发环境
    发表于 12-13 15:34 40次下载
    ESP32教程之如何在<b class='flag-5'>Windows</b>系统上<b class='flag-5'>搭建</b><b class='flag-5'>开发</b><b class='flag-5'>环境</b>

    MM32F013x——Windows环境基于Eclipse开发、调试MM32

    前面一章节介绍了在Windows搭建Eclipse开发环境,本章节将介绍在Windows
    发表于 01-25 18:53 2次下载
    MM32F013x——<b class='flag-5'>Windows</b><b class='flag-5'>环境</b><b class='flag-5'>下</b>基于Eclipse<b class='flag-5'>开发</b>、调试MM32

    MM32F013x——Windows搭建Eclipse开发环境

    前段时间有客户问到如何在Windows环境基于Eclipse开发、调试MM32 MCU,经过尝试,现将环境
    发表于 01-25 18:58 2次下载
    MM32F013x——<b class='flag-5'>Windows</b><b class='flag-5'>下</b><b class='flag-5'>搭建</b>Eclipse<b class='flag-5'>开发</b><b class='flag-5'>环境</b>

    MM32F013x——Windows搭建Eclipse开发环境

    如何在Windows环境基于Eclipse开发、调试MM32 MCU,经过尝试,现将环境搭建
    发表于 02-08 16:27 1次下载
    MM32F013x——<b class='flag-5'>Windows</b><b class='flag-5'>下</b><b class='flag-5'>搭建</b>Eclipse<b class='flag-5'>开发</b><b class='flag-5'>环境</b>

    Windows搭建ARM11裸机开发环境:Eclipse创建工程

    上一篇文章介绍了在Windows搭建ARM11的裸机开发环境,需要的朋友可以过去看看。
    的头像 发表于 04-08 09:36 1223次阅读

    Windows搭建ARM11裸机开发环境:Eclipse+JLink调试代码

    之前,写过两篇文章,介绍了在Windows搭建ARM11的裸机开发环境,以及使用Eclipse创建ARM11的裸机程序管理工程,需要的朋友
    的头像 发表于 04-08 14:13 2129次阅读