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

Windows下CMake编译tgbot-cpp报curl-demo及convert.cpp错误修复

tgbot-cpp Windows CMake编译错误修复方案

疑问解答

1. curl-demo是什么,是否对应curl.exe?

  • curl-demo是tgbot-cpp仓库自带的接口演示样例程序,和系统里的curl.exe完全无关。它是samples目录下的curl功能测试代码,CMake配置阶段会自动扫描样例目录下的源码生成对应编译目标,扫描不到对应源文件时就会触发你看到的No SOURCES given to target: curl-demo报错。

2. 编译该项目是否需要配置特定环境路径或系统变量?

  • 不需要配置全局系统变量,但必须在CMake配置阶段指定3个强制依赖的路径,依赖缺失或路径不对就会连带触发convert.cpp相关的编译错误:
    • libcurl开发包(必须包含头文件、编译好的静态/动态链接库,仅下载curl.exe二进制文件没用)
    • OpenSSL 1.1.x版本(3.x版本目前和库代码存在类型适配问题,会直接触发convert.cpp的类型转换错误)
    • Boost库(必须包含system、regex两个模块的开发文件)

分步修复操作

  1. 先校验本地仓库代码完整性

很多用户下载GitHub仓库时仅获取了根目录文件,漏拉samples、src目录下的子文件甚至子模块内容,自然找不到curl-demo对应源码、convert.cpp文件。如果是下载zip压缩包的重新下载完整包;如果是git拉取的代码,在仓库根目录执行git submodule update --init --recursive拉取所有子模块内容。

  1. 提前准备好对应编译器版本的3个依赖预编译包,不要手动编译依赖浪费时间,注意所有路径不要包含中文、空格。
  2. 打开CMake GUI,选择好源码目录、构建输出目录后,在Configure前先填写以下CMake配置项:
    • CURL_INCLUDE_DIR:选择libcurl开发包下的include文件夹路径
    • CURL_LIBRARY:选择libcurl开发包lib目录下的链接库文件(MSVC选libcurl.lib,MinGW选libcurl.a)
    • OPENSSL_ROOT_DIR:选择OpenSSL 1.1.x开发包的根目录
    • BOOST_ROOT:选择Boost库的根目录
  3. 如果你不需要运行官方提供的样例,直接把配置项里的BUILD_SAMPLES勾选取消,CMake会直接跳过所有样例目标的生成,不会再触发curl-demo相关的报错,这是最省事的方案,绝大多数开发者编译这个库都是为了自己写业务逻辑,不需要编译官方demo。
  4. 如果仍然触发convert.cpp相关错误,直接检查本地OpenSSL版本,卸载3.x版本更换为1.1.1w版本后重新Configure即可,这是该库目前已知的版本适配问题。

内容的提问来源于stack exchange,提问作者pizza prime 2k

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 02:54:25