gpt4 book ai didi

curl - 使用 CMake 的外部项目安装 libcurl4-openssl-dev

转载 作者:行者123 更新时间:2023-12-04 15:42:21 25 4
gpt4 key购买 nike

目前我在我的一个项目中有这么一段代码:

find_package(CURL REQUIRED)
if(${CURL_FOUND})
else(${CURL_FOUND})
message(STATUS "Could not find libcURL. This dependency will be downloaded.")
ExternalProject_Add(
libcurl
GIT_REPOSITORY "git://github.com/bagder/curl.git"
GIT_TAG "1b6bc02fb926403f04061721f9159e9887202a96"
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/lib/curl
PATCH_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/lib/cURL/buildconf
CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/lib/cURL/configure --prefix=<INSTALL_DIR>
BUILD_COMMAND ${MAKE}
UPDATE_COMMAND ""
INSTALL_COMMAND ""
LOG_DOWNLOAD ON
LOG_UPDATE ON
LOG_CONFIGURE ON
LOG_BUILD ON
LOG_TEST ON
LOG_INSTALL ON
)
ExternalProject_Get_Property(libcurl source_dir)
ExternalProject_Get_Property(libcurl binary_dir)
set(CURL_SOURCE_DIR ${source_dir})
set(CURL_BINARY_DIR ${binary_dir})
set(CURL_LIBRARIES ${CURL_BINARY_DIR}/lib/.libs/libcurl.dylib)
include_directories(${CURL_SOURCE_DIR})
set(DEPENDENCIES ${DEPENDENCIES} libcurl)
endif(${CURL_FOUND})

该项目的主要优先事项之一是尽可能容易地为最终用户安装,同时仍然从头开始编译。我在使用这段代码时遇到的一个错误是运行 CMake 时会生成以下错误:
CMake Error at /usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:97 (MESSAGE):
Could NOT find CURL (missing: CURL_LIBRARY CURL_INCLUDE_DIR)
Call Stack (most recent call first):
/usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:288 (_FPHSA_FAILURE_MESSAGE)
/usr/share/cmake-2.8/Modules/FindCURL.cmake:52 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
CMakeLists.txt:29 (find_package)

发生此错误的原因是 libcurl4-openssl-dev未安装在运行 CMake 的系统上。我想知道如何使用 CMake 安装此依赖项。有什么建议?

最佳答案

REQUIRED论据 find_package意味着如果没有找到包,CMake 将报告错误并停止。看起来您想要的是在运行 find_package 时允许 curl 包不存在。 ,但在必要时下载它。

你可能想要更像:

find_package(CURL)

if(NOT ${CURL_FOUND})
message(WARNING "Could not find libcURL. This dependency will be downloaded. To avoid this you can install curl yourself using the standard methods for your platform.")

...

endif()

关于curl - 使用 CMake 的外部项目安装 libcurl4-openssl-dev,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33598293/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com