所以我尝试在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 的。
这里是疯狂的猜测,但是在这行之后:
find_package(libcurl-simple-https CONFIG REQUIRED)
您没有忘记为其添加包含目录吗?所以下一行应该是这样的:
include_directories(${libcurl-simple-https_dirs})
我在其他项目中所做的是:
FIND_PACKAGE(CURL)
INCLUDE_DIRECTORIES(${CURL_INCLUDE_DIR})
您必须检查拼写和可能的情况,因为我不熟悉您使用的名称“libcurl-simple-https”。