仍然得到“卷曲/ curl.h:没有这样的文件或目录”尽管所有的看起来正确的(Still get &

2019-08-03 21:42发布

我在Windows上安装curl 7.28.0curl-7.28.1-devel-mingw32.zip通过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.alibcurl.dll.alibcurl.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>

我做错了什么? 请帮忙。

Answer 1:

你有curl/源代码目录, 而且在选项。

看来选项应该指出的更高级别的目录中, curl/是的,所以应该是这样的:

-I/local/include/


Answer 2:

我认为这个问题可能是你给包括在Win32路径格式在命令行的路径。 这是不一样的由MSYS(或最终的Cygwin)中使用的一个。

试试这些:

$ gcc -I/include/ 
      -I/local/include/curl
      -I/local/lib/pkgconfig
      ...

希望我得到的绝对路径正确,但你可以在你的MSYS壳检查。

是什么使我很生气的是,你使用./config ,这不会从命令提示符工作,但是从MSYS壳工作。 所以,你需要给在MinGW的所有程序理解路径。

基本上,在MinGW的大多数程序只有一个单一的文件系统根目录的概念,像任何unixoid系统上,而Win32的有多个(驱动器盘符)。 由于MinGW的程序也相应链接,你需要给他们了解的路径。



Answer 3:

非常感谢您对@ 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


文章来源: Still get 'curl/curl.h: No such file or directory' in spite of all looks proper
标签: c curl mingw