仍然得到’curl / curl.h:没有这样的文件或目录’尽管看起来很合适
我安装在windows curl 7.28.0
从curl-7.28.1-devel-mingw32.zip
通过minGW
控制台到默认目录,如:
./config && make && make install
所有需要的标题(aka curl.h, types.h ...
)我在C:\MinGW\msys\1.0\local\include\curl
看到
libcurl.pc
放在C:\MinGW\msys\1.0\local\lib\pkgconfig\
libcurl.a
, libcurl.dll.a
和libcurl.la
放在C:\MinGW\msys\1.0\local\lib
。
我的download_file.c
文件包括:
... #include #include #include ...
我尝试通过gcc
使用follow命令编译C
代码:
$ gcc -IC:/MinGW/msys/1.0/include/ -IC:/MinGW/msys/1.0/local/include/curl -IC:/MinGW/msys/1.0/local/lib/pkgconfig -o download_file download_file.c -llibcurl -lcurl
绝对路径获得相同的错误:
gcc -I/include/ -I/local/include/curl -I/local/lib/pkgconfig -o download_file download_file.c -llibcurl -lcurl
但我仍然得到一个错误:
download_file.c:21:23: fatal error: curl/curl.h: No such file or directory compilation terminated.
第21行是#include
我做错了什么? 请帮忙。
您在源代码中有curl/
目录,但也在选项中。
似乎选项应该指出curl/
是更高级别的目录,所以它应该是这样的:
-I/local/include/
我认为问题可能是您在Win32路径格式的命令行上提供包含路径。 这与msys(或最终Cygwin)使用的不同。
试试这些:
$ gcc -I/include/ -I/local/include/curl -I/local/lib/pkgconfig ...
希望我的absolut路径正确,但你可以检查你的msys shell。
勾选我的是你使用./config
,它不能从命令提示符工作,但可以从msys shell运行。 因此,您需要提供MinGW中所有程序都能理解的路径。
基本上,MinGW中的大多数程序只有单个文件系统根的概念,就像任何unixoid系统一样,而Win32有多个(驱动器号)。 由于MinGW程序是相应链接的,因此您需要提供他们理解的路径。
非常感谢@ 0xC0000022L和@unwind。 在你的帮助下我解决了我的问题。
0xC0000022L你对绝对路径是正确的
放松你是对的-I/local/include/
而不是-I/local/include/curl
我发现了其他问题: -L/local/lib
而不是-I/local/lib
。
所以这是一个有效的命令:
gcc -I/include/ -I/local/include -L/local/lib -o download_file download_file.c -llibcurl -lcurl