在Mac上使用cmake构建静态库时使用curl_multi_socket_action进行递归

时间:2018-08-06 14:09:18

标签: macos cmake libcurl

我正在使用cmake作为静态库从源代码构建libcurl。它在Windows和Linux上都能很好地工作。但是我在curl_multi_socket_action和Mac上的超时回调中出现堆栈溢出。

我的问题是,是否允许从回调内部调用curl_multi_socket_action?如果是这样,构建中可能缺少什么导致递归?

还请注意,如果我用用brew安装的libcurl替换了libcurl的自定义版本,则代码运行良好。

option(CURL_STATICLIB "Set to ON to build libcurl with static linking." ON)
option(HTTP_ONLY "disables all protocols except HTTP (This overrides all CURL_DISABLE_* options)" ON)
if(WIN32)
    option(CMAKE_USE_WINSSL "enable Windows native SSL/TLS" ON)
elseif(APPLE)
    option(CMAKE_USE_DARWINSSL "enable Apple OS native SSL/TLS" ON)
else()
    option(CMAKE_USE_OPENSSL "use OpenSSL code" ON)
endif()
set(CURL_CA_PATH "none" CACHE STRING "ca path")

add_subdirectory(curl)

target_include_directories(libcurl INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/curl/include>)
target_compile_definitions(libcurl INTERFACE CURL_STATICLIB)

0 个答案:

没有答案