2

curl 7.28.0コンソールからデフォルトのディレクトリまでcurl-7.28.1-devel-mingw32.zipWindowsにインストールしました: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.laC:\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>

私は何を間違えましたか?助けてください。

4

3 に答える 3

2

curl/ソースコードだけでなく、オプションにもディレクトリがあります。

オプションは、が含まれる上位レベルのディレクトリを指す必要があるように思われるため、次のcurl/ようになります。

-I/local/include/
于 2012-12-11T13:39:27.270 に答える
1

コマンドラインでインクルードパスをWin32パス形式で指定すると問題が発生する可能性が高いと思います。これは、msys (または最終的には Cygwin) で使用されるものと同じではありません。

これらを試してください:

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

絶対パスが正しいことを願っていますが、msys シェルをチェックインできます。

私を./config怒らせたのは、コマンドプロンプトからは機能せず、msysシェルからは機能する を使用していることです。そのため、MinGW のすべてのプログラムが理解できるパスを指定する必要があります。

基本的に、MinGW のほとんどのプログラムには、他の unixoid システムのように単一のファイル システム ルートの概念しかありませんが、Win32 には複数の (ドライブ文字) があります。MinGW プログラムはそれに応じてリンクされているため、プログラムが理解できるパスを指定する必要があります。

于 2012-12-11T13:31:22.240 に答える
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
于 2012-12-11T13:46:37.420 に答える