2014-06-08 1 views
2

Я хочу скомпилировать cURL из источника для использования в моем проекте Windows DLL. Для этого я установил виртуальную машину с Ubuntu, скачал источник Curl из http://curl.haxx.se/download/curl-7.37.0.tar.bz2, распаковал и настроил его так:Минимальное скрещивание cURL для окон

./configure --prefix=$HOME/devel/curl3 --disable-ftp --disable-file\ 
--disable-ldap --disable-dict --disable-telnet --disable-tftp\ 
--disable-rtsp --disable-pop3 --disable-imap --disable-smtp\ 
--disable-gopher --disable-ares --disable-debug --without-ssl\ 
--without-zlib --without-libidn --build=i586-pc-linux-gnu\ 
--host=i386-pc-mingw32 --disable-shared 

Так что у меня этот вывод:

configure: Configured to build curl/libcurl: 

    curl version:  7.37.0 
    Host setup:  i386-pc-mingw32 
    Install prefix: /home/victor/devel/curl3 
    Compiler:   gcc 
    SSL support:  no  (--with-{ssl,gnutls,nss,polarssl,cyassl,axtls,winssl,darwinssl}) 
    SSH support:  no  (--with-libssh2) 
    zlib support:  no  (--with-zlib) 
    GSS-API support: no  (--with-gssapi) 
    SPNEGO support: no  (--with-spnego) 
    TLS-SRP support: no  (--enable-tls-srp) 
    resolver:   default (--enable-ares/--enable-threaded-resolver) 
    ipv6 support:  no  (--enable-ipv6) 
    IDN support:  no  (--with-{libidn,winidn}) 
    Build libcurl: Shared=no, Static=yes 
    Built-in manual: enabled 
    --libcurl option: enabled (--disable-libcurl-option) 
    Verbose errors: enabled (--disable-verbose) 
    SSPI support:  no  (--enable-sspi) 
    ca cert bundle: no 
    ca cert path:  no 
    LDAP support:  no  (--enable-ldap/--with-ldap-lib/--with-lber-lib) 
    LDAPS support: no  (--enable-ldaps) 
    RTSP support:  no  (--enable-rtsp) 
    RTMP support:  no  (--with-librtmp) 
    metalink support: no  (--with-libmetalink) 
    HTTP2 support: disabled (--with-nghttp2) 
    Protocols:  HTTP 

Тогда я просто макияжа & make install для создания файлов (libcurl.a и include/curl/) *. Все работает нормально, но проблема в том, что при импорте сгенерированных файлов один заголовок отсутствует: sys/socket.h. Этот заголовок не является частью чистой установки MingW32 и этим, команда configure с -host = i386-pc-mingw32 не должна требовать этого, поскольку окна используют winsock, правильно?

Что мне здесь не хватает?

Извините за длинный вопрос и спасибо заранее.

ответ

2

Я узнал, что случилось;

Мне пришлось загрузить пакет mingw32, а затем установить его в качестве инструментальной привязки для настройки и создания команд. Ошибка конфигурации -host также неверна. Набор инструментов скачано должен был быть направлен как «i586-PC-mingw32msvc» и путь был установлен как:

PATH=(path/to/i586ming):$PATH ./configure <options described above> 
PATH=(path/to/i586ming):$PATH make 
PATH=(path/to/i586ming):$PATH make install 

И мой выход был правильным.

1

Этот вопрос может быть, старая, но вот как я это сделал ..

  1. Я установил mingw32

    sudo apt-get install mingw32 
    
  2. Затем запустите ./Configure с дополнительными опциями --host=i586-mingw32msvc LDFLAGS=-mwindows:

    ./configure --host=i586-mingw32msvc LDFLAGS=-mwindows --prefix=path/to/install/to \ 
    --disable-ftp --disable-file --disable-ldap --disable-dict --disable-telnet \ 
    --disable-tftp --disable-rtsp --disable-pop3 --disable-imap --disable-smtp \ 
    --disable-gopher --disable-ares --disable-debug --without-ssl --without-zlib \ 
    --without-libidn --disable-shared 
    

    Редактирование path/to/install/to в опции --prefix=.

  3. Тогда:

    make && make install