本文转自公众号,欢迎关注
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 #include 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放在一起。
OPPO Reno3全系列将于12月26日发布支持双模5G网络
XD卡
不知道集成厨房选哪家?海尔前9月增127.6%
2021年时现代全面推动BEV的关键一年
EDA技术与FPGA设计应用
Windows下使用pthread-开发环境搭建
MEMS超声波换能器系统市场的普及情况分析
汽车传感器损坏之后的故障现象及解决方法
继电器已广泛运用于智能化切膜机领域之中
美光正式量产1Znm工艺的16Gb DDR4内存
中周变压器是什么_中周变压器的原理_中周变压器作用
基于OSFP-XD的1.6T光模块方案
从零到python机器学习大神的7个步骤
DS2141A , DS2143 , DS2151 , DS
三星W2019预计将在年底发布 售价均在万元以上
AET首台8K0.7全倒装COB显示屏入驻中央广播电视总台
赛灵思开发的数字频率复用方案为科学探索提供有力帮助
天津会议邀请丨7月15日,纳特通信与您相约“电磁环境新基建”专题产业论坛
青岛市机器人协会正式揭牌
电感性负载与电阻性负载的区别