在 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 的操作。
我目前正在 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 的操作。