Getting error: fatal error: curl/curl.h: No such file or directory #include <curl/curl.h>

Getting error: fatal error: curl/curl.h: No such file or directory #include <curl/curl.h>

我正在尝试使用 cURL,但每次尝试使用它编译项目时,我都会遇到标题中提到的相同错误。我知道关于类似问题的十几个 post。然而,到目前为止我读过的大多数解决方案要么不起作用,要么我似乎无法找到适合我的模拟,因为我在 [=22] 上使用 mingw32 =] 10 OS.

我正在尝试使用 curl-7.76.1-win32-mingw.zip。我是从 cURL 站点获取的,无论我尝试将文件粘贴到哪里,都无法正确编译。

有人,请向我解释你的解决方案或想法,就像我 5 岁一样。我的大脑融化了。

这是实际错误:

PS C:\Users\Me> g++ -I "C:\Program Files\Curl\curl-7.76.1-win32-mingw\include\curl" -c "D:\Personal\Projects\#####\#####\#####\#####\main.cpp" -o "D:\Personal\Projects\#####\#####\#####\#####/main"
 In file included fromD:\Personal\Projects\#####\#####\#####\#####\main.cpp:4:
D:\Personal\Projects\#####\#####\#####\#####\testapi.hpp:7:10: fatal error: curl/curl.h: No such file or directory
 #include <curl/curl.h>
          ^~~~~~~~~~~~~
compilation terminated.
[Finished in 0.6s]"

Mingw 是 windows 的 gcc。几乎所有适用于 gcc 的东西都适用于 mingw。

最好在您的 Makefile 中使用相对路径,并且使用 gnu make(它是 mingw/msys 的一部分)始终使用“/”作为路径分隔符。如果你必须使用像 C:\dev\projects\mylib 这样的绝对路径,请这样使用:C:/dev/projects/mylib.

回到您的 curl:curl/curl.hC:\path\to\curl-7.76.1-win32-mingw\include\curl\curl.h 中,因此您需要将 include 目录添加到指向正确目录的 gcc 命令行,即 C:\path\to\curl-7.76.1-win32-mingw\include 因为您使用 "curl/curl.h"。如果你没有在系统范围内安装它(那个 curl),那么在 #include 路径中使用 "curl/curl.h"<curl/curl.h>.

更好

所以你所要做的就是将 -Ipath/to/curl-7.76.1-win32-mingw/include 添加到你的编译行,例如:

g++ -O2 -Ipath/to/curl-7.76.1-win32-mingw/include -c -omain.o main.cpp

可以在 Makefile 中自动完成:

CXX = g++
CFLAGS += -O2
INCLUDES += -Ipath/to/curl-7.76.1-win32-mingw/include

.cpp.o:
    $(CXX) -c $(CXXFLAGS) $(INCLUDES) $*.cpp

你写:

g++ -I "C:\Program Files\Curl\curl-7.76.1-win32-mingw\include\curl"

尝试更好:

g++ -I "C:\Program Files\Curl\curl-7.76.1-win32-mingw\include"

如您在代码示例中所写:

#include <curl/curl.h>

或保留 -I 选项,并将 #include 更改为:

#include <curl.h>

我真诚地希望这会有所帮助。