curl/curl.h:即使 vcpkg 在构建中创建了目录 vcpg_installed 并且那里有curl/curl.h,也没有这样的文件或目录

问题描述 投票:0回答:1

所以我尝试在c++中使用curl.h,我的main.cpp只是hello world,但包含curl/curl.h:

#include <iostream>
#include <curl/curl.h>

int main(){
    std::cout<<"hello world!";

    return 0;
}

我的 CMakeLists.txt 看起来像这样:

add_executable(main)
target_sources(main PRIVATE main.cpp)
cmake_minimum_required(VERSION 3.15)
set(CMAKE_TOOLCHAIN_FILE ${CMAKE_CURRENT_SOURCE_DIR}/vcpkg/scripts/buildsystems/vcpkg.cmake CACHE STRING "Vcpkg toolchain file")
project(web_crawler)
find_package(libcurl-simple-https CONFIG REQUIRED)

我对 vcpkg 和 CMake 都很陌生,我正在尝试学习它,这就是为什么它看起来像这样。

我的 vcpkg.json 是:

{
  "name": "webcrawler",
  "version-string": "latest",
  "dependencies": [
    "libcurl-simple-https"
  ]
}

cmake 构建似乎工作正常,当我使用 make 时,我得到了这个:

fatal error: curl/curl.h: No such file or directory
    2 | #include <curl/curl.h>
      |          ^~~~~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/main.dir/build.make:76: CMakeFiles/main.dir/main.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/main.dir/all] Error 2
make: *** [Makefile:91: all] Error 2

正如我已经告诉过的,我对 cmake 和 vcpkg 都是新手,所以我不知道该怎么做,也找不到任何类似的帖子,因为其中大多数都是关于安装 curl 的。

c++ linux curl cmake vcpkg
1个回答
0
投票

这里是疯狂的猜测,但是在这行之后:

find_package(libcurl-simple-https CONFIG REQUIRED)

您没有忘记为其添加包含目录吗?所以下一行应该是这样的:

include_directories(${libcurl-simple-https_dirs})

我在其他项目中所做的是:

FIND_PACKAGE(CURL)
INCLUDE_DIRECTORIES(${CURL_INCLUDE_DIR})

您必须检查拼写和可能的情况,因为我不熟悉您使用的名称“libcurl-simple-https”。

© www.soinside.com 2019 - 2024. All rights reserved.