我在curl 7.28.0
到curl-7.28.1-devel-mingw32.zip
控制台的Windows minGW
上安装到默认目录,如:
./config && make && make install
我在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 <curl/curl.h>
#include <curl/types.h>
#include <curl/easy.h>
...
我尝试使用C
的跟随命令编译gcc
代码:
$ 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.h>
我做错了什么?请帮忙。
答案 0 :(得分:2)
源代码中有curl/
目录,但选项中也。
似乎该选项应该指出curl/
所在的更高级目录,所以它应该是这样的:
-I/local/include/
答案 1 :(得分:1)
我认为问题可能是您在Win32路径格式的命令行上提供了包含路径。这与msys(或最终Cygwin)使用的不同。
试试这些:
$ gcc -I/include/
-I/local/include/curl
-I/local/lib/pkgconfig
...
希望我的absolut路径正确,但你可以检查你的msys shell。
让我感到惊讶的是,您使用的是./config
,这在命令提示符下无效,但可以在msys shell中使用。因此,您需要提供MinGW中所有程序都能理解的路径。
基本上,MinGW中的大多数程序只有单个文件系统root的概念,就像任何unixoid系统一样,而Win32有多个(驱动器号)。由于MinGW程序是相应链接的,因此您需要提供他们理解的路径。
答案 2 :(得分:0)
非常感谢@ 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