【问题标题】:How to include libcurl in cmake library如何在 cmake 库中包含 libcurl
【发布时间】:2020-02-11 22:22:42
【问题描述】:

我正在创建一个以 libcurl 作为依赖项的 cpp 库。我希望用户在他们的计算机上提供 libcurl 的路径。最好的方法是什么?

编辑:澄清一下,我在 Windows 上制作库,但我希望它是跨平台的

【问题讨论】:

  • 哪个平台,Linux/BSD/MSWindows?细节很重要。
  • 我会使用像 Conan 这样的包管理器。
  • 当您说您“希望用户在他们的计算机上提供 libcurl 的路径”时,这是否意味着您想要与 CMake 的 find_package 功能不同的行为,或者这是否足够?换个方式问:find_package(CURL REQUIRED) 不适合你吗?
  • @SamVarshavchik 抱歉,我更新了问题
  • @TravisGockel 我试过了,但出现错误:找不到 CURL(缺少:CURL_INCLUDE_DIR)

标签: c++ curl cmake libcurl


【解决方案1】:

根据您的描述,您必须将搜索路径添加到 cmake 在尝试通过调用 [find_package] 查找包时检查的路径列表中

如果你想支持用户定义的路径来链接libcurl共享对象(libcurl.so),你可以通过CMAKE_PREFIX_PATHcmake命令传递它

使用示例

cmake -DCMAKE_PREFIX_PATH=<full_path_where_curl_is_installed> -B build -S .

假设构建工件将位于主项目的build 子目录(顶级CMakeLists.txt 存在)并且使用的cmake版本是3.16+ em>

如果你想在自己的CMakeLists.txt嵌入信息,你可以启用curl的路径作为搜索路径

使用示例

在您的CMakeLists.txt 中,在为CURL 调用find_package 之前添加以下行

list(APPEND CMAKE_PREFIX_PATH <full_path_where_curl_is_installed>)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-25
    • 1970-01-01
    • 1970-01-01
    • 2017-11-09
    • 2021-05-29
    • 2020-07-17
    • 1970-01-01
    相关资源
    最近更新 更多