在 Visual Studio 上构建 libcurl,没有用于名称解析的线程

Building libcurl on Visual Studio without threads for name resolving

我目前正在 Visual Studio 2015 年构建 libcurl。但是,FAQ 指出:

libcurl will potentially internally use threads for name resolving, if it was built to work like that

现在,我知道在 linux 上使用 ./configure --disable-thread,这会使 libcurl 不使用任何线程来解析名称。通过文档,我没有看到任何关于 Visual Studio 的标志。他们确实提到配置实用程序在 Windows 上不可用,但没有提到线程禁用选项。

但是 Visual Studio 有类似的标志吗?

我相信您可以通过在 curl 源代码树中定义 USE_SYNC_DNS 或编辑 lib/config-win32.h 来做到这一点。查看 the section 看起来像:

#if !defined(USE_SYNC_DNS) && !defined(USE_ARES) && \
    !defined(USE_THREADS_WIN32)
#  define USE_THREADS_WIN32 1
#endif

请注意,通过为此目的禁用线程使用代码,您将无法在名称解析期间超时或以其他方式中止 libcurl 的操作。