网站首页

人工智能P2P分享搜索全网发布信息网站地图标签大全

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

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

时间:2023-06-08 10:32

人气:

作者:admin

导读:Windows下使用pthread-开发环境搭建...

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

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

审核编辑:汤梓红

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信