gpt4 book ai didi

c - Windows 上的 Pthread - 未定义的 sleep 引用

转载 作者:太空宇宙 更新时间:2023-11-04 08:40:49 25 4
gpt4 key购买 nike

我一直在尝试使用 pthreads 实现哲学家用餐解决方案,我尝试在我的 Lenovo yoga2pro pc(在 Windows 8.1 上运行)上运行它,即使我通过 mingw 安装管理器安装了适用于 Windows 的 pthreads 我收到此错误: 只有在代码的某些部分中有 sleep() 方法时才会发生。

C:\Users\Anil\Desktop\Github>gcc dphi.c -pthread
C:\Users\Anil\AppData\Local\Temp\ccAxhsF4.o:dphi.c:(.text+0x185): undefined refe
rence to `sleep'
C:\Users\Anil\AppData\Local\Temp\ccAxhsF4.o:dphi.c:(.text+0x1de): undefined refe
rence to `sleep'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: C:\Users\A
nil\AppData\Local\Temp\ccAxhsF4.o: bad reloc address 0x0 in section `.data'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: final link
failed: Invalid operation
collect2.exe: error: ld returned 1 exit status

当我尝试编译另一个没有 sleep() 方法的文件时。这是我得到的:

C:\Users\Anil\Desktop\Github>gcc dp.c -pthread
C:\Users\Anil\Desktop\Github>a.exe
Thread 1 says Hello!
Thread 2 says Hi!

它工作得很好。我刚刚开始编写此代码以了解有关线程的更多信息,因为我正在尝试将解决用餐哲学家解决方案的方法作为一个项目来实现。我不知道我做错了什么。 (我尝试在 Windows 上使用 pthreads 执行此操作的原因是因为这是一项要求)

最佳答案

朴素的方法:

#include <windows.h>
// Win32's Sleep() is in millis
#define sleep(n) Sleep(n*1000)
#define usleep(n) Sleep(n/1000)

关于c - Windows 上的 Pthread - 未定义的 sleep 引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23664941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com