我试图使用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]"
发布于 2021-05-05 12:07:12
明明是gcc的窗户。几乎所有适用于gcc的东西都适用于交融。
最好在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
,因为您使用的是"curl/curl.h"
。如果您没有在系统范围内安装"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
发布于 2021-05-06 12:25:30
你写:
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>
我衷心希望这会有所帮助。
https://stackoverflow.com/questions/67394957
复制相似问题