微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

获取错误:致命错误:curl/curl.h:没有这样的文件或目录#include <curl/curl.h>

如何解决获取错误:致命错误:curl/curl.h:没有这样的文件或目录#include <curl/curl.h>

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

我正在尝试使用 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.h 位于 C:\path\to\curl-7.76.1-win32-mingw\include\curl\curl.h 中,因此您需要将包含目录添加到指向正确目录的 gcc 命令行,即 C:\path\to\curl-7.76.1-win32-mingw\include,因为您使用 { {1}}。如果您没有在系统范围内安装它(那个 curl),那么在 "curl/curl.h" 路径中使用 "curl/curl.h" 也比使用 #include 更好。

所以你所要做的就是将 <curl/curl.h> 添加到你的编译行,比如:

-Ipath/to/curl-7.76.1-win32-mingw/include

它可以在 Makefile 中自动完成:

g++ -O2 -Ipath/to/curl-7.76.1-win32-mingw/include -c -omain.o main.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>

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。