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放在一起。

审核编辑:汤梓红

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

    关注

    4983

    文章

    18286

    浏览量

    288492
  • WINDOWS
    +关注

    关注

    3

    文章

    3440

    浏览量

    87144
  • 开发环境
    +关注

    关注

    1

    文章

    203

    浏览量

    16461
  • 环境搭建
    +关注

    关注

    0

    文章

    51

    浏览量

    8985
收藏 人收藏

    评论

    相关推荐

    Windows下基于MSVC搭建libjpeg开发环境

    Windows下基于MSVC搭建libjpeg开发环境
    的头像 发表于 06-08 10:23 1024次阅读
    <b class='flag-5'>Windows</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 1518次阅读
    <b class='flag-5'>Windows</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 1110次阅读
    <b class='flag-5'>Windows</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 1025次阅读
    <b class='flag-5'>Windows</b>下基于MSVC<b class='flag-5'>搭建</b>SDL<b class='flag-5'>开发</b><b class='flag-5'>环境</b>

    WindowsSTM32单片机eclipse编译环境搭建

    应用软件的用户也比较多,因此在windows环境中,搭建eclipse的STM32编译环境,就变得非常有意义:可以很好地与linux编译环境
    发表于 10-20 13:25

    怎样去搭建一种windows的linux开发环境

    怎样去搭建一种windows的linux开发环境?如何去安装linux开发
    发表于 10-08 07:39

    搭建Windows+Ubuntu混合开发环境

    还不支持在Windows环境进行编译,如Hi3861、Hi3516系列开发板。此时,可以使用Ubuntu的编译环境对源码进行编译。在以上的
    发表于 05-11 19:25

    WindowsVSCode + kendryte插件 搭建K210开发环境指南

    手上有块MaixDock K210,想在Windows环境,尝试用VSCode搭建开发环境。在
    发表于 06-04 22:22

    开发环境搭建教程

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

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

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

    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下载

    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开发环境

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

    AN068 GD32MCU Windows环境Eclipse开发环境搭建教程

    AN068 GD32 MCU Windows环境Eclipse开发环境搭建教程
    发表于 03-01 18:56 2次下载
    AN068 GD32MCU <b class='flag-5'>Windows</b><b class='flag-5'>环境</b>Eclipse<b class='flag-5'>开发</b><b class='flag-5'>环境</b><b class='flag-5'>搭建</b>教程