【问题标题】:Using pthread.h on a windows build在 Windows 构建中使用 pthread.h
【发布时间】:2010-11-12 23:53:31
【问题描述】:

我有一个广泛使用 pthread.h 的代码库。在 Windows Visual Studio 项目中,这显然不起作用,因为 pthreads 是一个 unix 实用程序。

我知道存在 pthread-win32 或类似的东西,但有没有办法让代码库使用它,而无需替换所有 pthread 代码?

edit:我宁愿不必经历并替换所有 pthread 调用。这是我的问题

【问题讨论】:

  • 我不明白。你说你知道win32有一个pthread库,那你为什么不用呢?

标签: c++ c pthreads


【解决方案1】:

试试http://sourceware.org/pthreads-win32/。虽然我从未使用过那个特定的库,但我很幸运地使用了一些 Windows 端口/POSIX API 的抽象层。

【讨论】:

    【解决方案2】:

    我建议将 boost 作为一个包含独立于平台的线程抽象的库。我认为您不会发现任何尝试调用 pthread 函数本身来令人满意。自己将 pthread 映射到 Win32 也不是很难。

    【讨论】:

    • 对于那些拥有使用 pthreads 的现有代码库的人来说不是很有用,尽管他们不想重写线程代码。 :)
    • 我已经做过很多次了。全局搜索/替换的发明是有原因的。
    • 原因不是在具有潜在语义差异的 API 之间切换。
    • 这个答案离题了。如果你的螺丝有问题,你不应该把整辆车换成你能找到的任何新螺丝。
    【解决方案3】:

    如果代码非常基于 *nix,那么使用Cygwin+GCC 编译它可能会很幸运。如果 pthreads 是唯一的 *nix 依赖项,并且您想避免 Cygwin 依赖项,那么您应该使用 Pthreads-win32

    【讨论】:

      猜你喜欢
      • 2012-10-24
      • 1970-01-01
      • 2011-01-10
      • 1970-01-01
      • 1970-01-01
      • 2014-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多