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.h
在 C:\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>
我真诚地希望这会有所帮助。
我正在尝试使用 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.h
在 C:\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>
我真诚地希望这会有所帮助。