【问题标题】:How to set up pthreads on windows?如何在 Windows 上设置 pthread?
【发布时间】:2013-10-28 08:20:28
【问题描述】:

我在 Windows here 上找到了 pthreads 的实现,但我无法让它正常工作。谁能帮我安装 pthreads ?比如将 DLL、.lib 和 .h 文件放在哪里?

另外,作为一个环境,我没有使用 Visual Studio,而是使用 Mingw 的 Codeblocks。

我通常在 Linux 上开发,但这个项目必须在 Windows 上,而且我已经使用 pthreads 实现了一些代码,所以我不想使用“windows.h”中的 Windows 线程。

【问题讨论】:

    标签: c windows pthreads mingw


    【解决方案1】:

    在 Windows 上的 MSYS2 中安装 gcc

    pacman -Syu gcc
    

    就是这样!

    通过在 MSYS2 中安装 gcc,您也自动设置了 pthreads

    You may want to see an example which proves that pthreads is working.

    简而言之 - 如果您编译并运行,与 Linux 上完全相同的代码可以正常工作 在 MSYS2 终端内。 (不一定总是正确的,但对于 链接中的示例。)

    参考资料:

    【讨论】:

    • 不确定我明白你在问什么,但 MSYS2 中的软件包安装程序 pacman 与 Arch-Linux 中使用的“相同” pacman,当然它是它的 MSYS2 版本.
    • 我明白了。好吧,我使用拱门,所以看到有人在 Windows 上使用神圣程序感到非常困惑(而且有点茫然);)当然,我也使用 Windows(基本上只有几个视频游戏和 Cygwin),所以任何可以帮助我们获得的资源这工作吗?
    • > 所以任何可以帮助 [m]e 使其正常工作的资源? ~ * ~ * ~ 我建议您从我的回答中的第一个参考开始 - MYS2 - Installation ~ * ~ * ~ 让我知道这是否有效。 - 一旦你安装了 MSYS2(我认为这比安装 cygwin 容易得多),只需打开一个 MSYS2 终端并假装你刚刚在 (Arch-)Linux 中打开了一个终端窗口。 ~ * ~ * ~ 如果你让它工作,考虑支持我的答案!
    • 几乎 any 源代码我从经典的 Linux 设置(在本例中为 C / C++ 代码和可能的 Linux makefile)中挑选并抛出 MSYS2对源代码进行任何更改。它只是工作。这(几乎)就好像我在运行正版 Linux。 - 的确很好。 ~ * ~ 虽然我能理解一开始你既不解茫然,但到最后你应该惊讶! i> :-)
    • 我明白了,但是 MSYS 是必需的还是 Cygwin 可以做同样的事情?请原谅我的无知,我不知道它是什么,我只是安装了 Cygwin,以防万一我失去理智试图保持我的 C ISO 兼容并决定屈服于丰富的 POSIX API。我会检查一下,然后+1。我确定在我的 Windows 上需要一个 linux 环境,最重要的是我已经习惯了 Arch 之类的东西,非常感谢! PS/编辑:MSYS2 声称提供代码的原生性,但这不是 Cygwin 所做的(虽然是 dll),WSL 也是如此......这些不同项目的标志是什么?
    【解决方案2】:

    对于 Visual C++ 用户(不是 MingW),请按照以下步骤操作:

    1) 下载“ftp://sourceware.org/pub/pthreads-win32/pthreads-w32-2-9-1-release.zip

    2) 在解压文件夹中,打开子文件夹“Pre-built.2”,您应该会看到以下文件:

    • “Pre-built.2\dll\x64\pthreadVC2.dll”或“Pre-built.2\dll\x86\pthreadVC2.dll”
    • “Pre-built.2\lib\x64\pthreadVC2.lib”或“Pre-built.2\lib\x86\pthreadVC2.lib”
    • “预建.2\include\pthread.h”
    • "Pre-built.2\include\sched.h"
    • "Pre-built.2\include\semaphore.h"

    3) 对于 Visual Studio C++ x64 项目,转到项目属性并相应添加以下路径:

    • 其他 lib 文件添加“yourpath\Pre-built.2\lib\x64\”
    • 其他 dll 文件添加“yourpath\Pre-built.2\dll\x64\”
    • 其他包含文件添加“yourpath\Pre-built.2\include\”

    根据您的项目构建(x64 或 x86)选择正确的文件。

    【讨论】:

    • 问题是不要使用 Visual Studio,所以答案没有多大帮助。
    【解决方案3】:

    .dll 可以放在 PATH 环境中列出的任何目录中 变量。

    .lib 文件可以放在您的 LIB 环境中列出的任何目录中 变量。

    .h 文件可以放在 INCLUDE 中列出的任何目录中 环境变量。

    另请参阅您分享的链接的FAQs 页面。

    阅读 Q6、Q7、Q8。

    【讨论】:

      猜你喜欢
      • 2014-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-04
      • 2011-02-06
      相关资源
      最近更新 更多