You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows下LibCurl初始化崩溃求助:curl_global_init/curl_easy_init异常

解决Windows 10下CMake编译LibCurl初始化崩溃(错误码0xC0000135)

首先,错误码0xC0000135在Windows系统里的含义非常明确:程序无法找到运行所需的动态链接库(DLL)。你的测试代码本身没有问题,崩溃完全是因为LibCurl的依赖库没有正确配置到位,导致程序启动时就加载失败,连printf都没机会执行。

下面是一步步的排查和解决思路:

  • 检查LibCurl的库类型与DLL部署
    如果你使用的是动态链接版本的LibCurl,必须把对应的curl.dll(以及它依赖的其他DLL,比如SSL版本需要的libssl.dll、libcrypto.dll)放到以下任意位置:

    • 你的程序生成的exe所在的目录
    • Windows系统目录(C:\Windows\System32或C:\Windows\SysWOW64,根据架构选择)
    • 系统环境变量PATH包含的目录
  • 确认CMake配置的正确性
    确保CMake正确找到了匹配的LibCurl库:

    • 如果使用find_package(CURL REQUIRED),要保证CMake的搜索路径里有对应架构(32/64位)的LibCurl库文件
    • 如果是手动指定库路径,链接的.lib文件必须和你编译的程序架构一致,同时记得把对应的DLL复制到运行目录
    • 如果你要链接静态LibCurl,必须在编译前定义CURL_STATICLIB宏,避免链接错误
  • 核对编译架构一致性
    你的程序编译目标(32位/64位)必须和LibCurl库的编译架构完全一致!比如你用VS编译64位程序,却链接了32位的LibCurl库,就会触发这个加载失败的错误。

  • 静态编译彻底解决DLL问题
    如果你不想折腾DLL部署,可以选择编译静态版本的LibCurl。这样所有依赖都会被打包到你的exe文件中,运行时不需要额外的DLL。在CMake里需要:

    1. 确保你下载或编译了静态版的LibCurl库
    2. 在CMakeLists.txt中添加add_definitions(-DCURL_STATICLIB)
    3. 链接静态库文件(比如curl_static.lib)
  • 用工具定位缺失的DLL
    可以使用Dependency Walker(或Windows自带的dumpbin工具)打开你的exe文件,它会列出所有需要的DLL以及哪些找不到,帮你精准定位缺失的依赖。

内容的提问来源于stack exchange,提问作者GemsKnight

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:56:01