首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取错误:致命错误: curl/curl.h:没有这样的文件或目录#包括<curl/curl.h>

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

Stack Overflow用户
提问于 2021-05-05 03:49:41
回答 2查看 2.7K关注 0票数 0

我试图使用cURL,但是每次我尝试用它编译一个项目时,我都会得到标题中提到的相同的错误。我知道有十几个关于类似问题的帖子。然而,到目前为止,我所读到的大多数解决方案要么不起作用,要么我似乎找不到类似的东西,因为我正在windows 10操作系统上使用mingw32

我正在尝试使用curl-7.76.1-win32-mingw.zip。我从cURL站点获得了它,无论我试图把文件放在哪里,我都无法得到任何可以正确编译的东西。

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

以下是实际错误:

代码语言:javascript
运行
复制
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]"
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-05-05 12:07:12

明明是gcc的窗户。几乎所有适用于gcc的东西都适用于交融。

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

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

代码语言:javascript
运行
复制
g++ -O2 -Ipath/to/curl-7.76.1-win32-mingw/include -c -omain.o main.cpp

它可以在Makefile中自动完成:

代码语言:javascript
运行
复制
CXX = g++
CFLAGS += -O2
INCLUDES += -Ipath/to/curl-7.76.1-win32-mingw/include

.cpp.o:
    $(CXX) -c $(CXXFLAGS) $(INCLUDES) $*.cpp
票数 1
EN

Stack Overflow用户

发布于 2021-05-06 12:25:30

你写:

代码语言:javascript
运行
复制
g++ -I "C:\Program Files\Curl\curl-7.76.1-win32-mingw\include\curl"

试得更好:

代码语言:javascript
运行
复制
g++ -I "C:\Program Files\Curl\curl-7.76.1-win32-mingw\include"

正如您在代码示例中所写:

代码语言:javascript
运行
复制
#include <curl/curl.h>

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

代码语言:javascript
运行
复制
#include <curl.h>

我衷心希望这会有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67394957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档