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

如何在Qt6 Android(NDK)环境中链接libcurl

在Qt6 Android(NDK)环境中链接libcurl的解决方法

方法一:使用预编译libcurl库

  • 下载适配Android NDK的预编译libcurl包(需包含头文件和对应CPU架构的.so文件)
  • 在CMakeLists.txt中手动指定路径并链接:
    # 引入CURL头文件
    include_directories(/你的libcurl路径/include)
    
    # 根据Android架构匹配库路径
    if(${ANDROID_ABI} STREQUAL "armeabi-v7a")
        link_directories(/你的libcurl路径/libs/armeabi-v7a)
    elseif(${ANDROID_ABI} STREQUAL "arm64-v8a")
        link_directories(/你的libcurl路径/libs/arm64-v8a)
    elseif(${ANDROID_ABI} STREQUAL "x86")
        link_directories(/你的libcurl路径/libs/x86)
    elseif(${ANDROID_ABI} STREQUAL "x86_64")
        link_directories(/你的libcurl路径/libs/x86_64)
    endif()
    
    # 链接libcurl到项目
    target_link_libraries(你的项目名称 PRIVATE curl)
    
  • 将对应架构的libcurl.so放到Qt项目的android/libs/[对应ABI]目录下,打包APK时会自动嵌入

方法二:用NDK编译libcurl源码

  • 下载libcurl源码,编写交叉编译脚本(示例:build_curl_android.sh):
    export NDK_PATH=/你的Android NDK路径
    export TOOLCHAIN=$NDK_PATH/build/cmake/android.toolchain.cmake
    export ANDROID_ABI=arm64-v8a # 按需替换为目标架构
    export ANDROID_PLATFORM=android-24 # 按需设置最低兼容API版本
    
    mkdir build && cd build
    cmake .. \
      -DCMAKE_TOOLCHAIN_FILE=$TOOLCHAIN \
      -DANDROID_ABI=$ANDROID_ABI \
      -DANDROID_PLATFORM=$ANDROID_PLATFORM \
      -DBUILD_SHARED_LIBS=ON \
      -DCURL_USE_OPENSSL=OFF # 若需SSL支持,需额外编译对应依赖库
    make -j$(nproc)
    
  • 运行脚本编译出对应架构的libcurl库,后续步骤同方法一,在CMakeLists.txt中指定路径并链接

方法三:调整find_package参数(保留原指令逻辑)

如果坚持用find_package,需指定CURL配置文件路径:

set(CURL_DIR /你的libcurl路径/cmake) # 指向包含CURLConfig.cmake的目录
find_package(CURL REQUIRED)
target_link_libraries(你的项目名称 PRIVATE CURL::libcurl)

注意路径需匹配你编译或下载的libcurl的cmake配置文件位置

额外注意:确保Qt的Android Kit配置正确,NDK路径无误,且libcurl的架构与当前编译的Android ABI完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 03:59:54