Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

comment on

( #3333=superdoc: print w/replies, xml ) Need Help??
I'll try to build latest Net-Curl with perl-5.30 later today, and see how it goes for me.

Here's how it went for me.

First up, I added the location (C:\_64\msys64\mingw64\bin) of the libcurl dll to my path:
set PATH=%PATH%;C:\_64\msys64\mingw64\bin
That, of course, also makes a whole lot of other stuff (such as pkg-config) available.

Then I conceal the curl static lib (C:\_64\msys64\mingw64\lib\libcurl.a) by changing its extension to ".a_hide".
This ensures that the Net-Curl-0.41 build links to the import lib (C:\_64\msys64\mingw64\lib\libcurl.dll.a).
Next, run the Makefile.PL:
C:\sisyphusion\Net-Curl-0.41>perl Makefile.PL 'which' is not recognized as an internal or external command, operable program or batch file. which failed: Found libcurl version 7.65.0 Reading C:/_64/msys64/mingw64/include/curl/curl.h (gcc -E -IC:/_64/msy +s64/mingw6 4/include C:/_64/msys64/mingw64/include/curl/curl.h) Skipping '#define CURL_STRICTER': does not define a symbol at Makefile +.PL line 3 18, <H> line 34. Skipping '# define CURL_EXTERN': does not define a symbol at Makefile +.PL line 3 18, <H> line 116. Skipping '# define CURL_EXTERN': does not define a symbol at Makefile +.PL line 3 18, <H> line 128. Skipping '#define CURL_DID_MEMORY_FUNC_TYPEDEFS': does not define a sy +mbol at Ma kefile.PL line 318, <H> line 448. Reading C:/_64/msys64/mingw64/include/curl/multi.h (gcc -E -IC:/_64/ms +ys64/mingw 64/include C:/_64/msys64/mingw64/include/curl/multi.h) -> found 892 constants (should be 892) Writing const-defenums-h.inc Writing const-curl-xs.inc Writing const-easy-xs.inc Writing const-form-xs.inc Writing const-multi-xs.inc Writing const-share-xs.inc Writing curl-Easy-c.inc Writing curl-Easy-xs.inc Writing curl-Form-c.inc Writing curl-Form-xs.inc Writing curl-Multi-c.inc Writing curl-Multi-xs.inc Writing curl-Share-c.inc Writing curl-Share-xs.inc Writing lib/Net/Curl/examples.pod <- examples/01-curl-transport.pl <- examples/02-multi-simple.pl <- examples/03-multi-event.pl <- examples/04-share-threads.pl <- examples/05-irssi-downloader.pl Writing lib/Net/Curl/Compat.pm Checking if your kit is complete... Looks good Generating a gmake-style Makefile Writing Makefile for Net::Curl Writing MYMETA.yml and MYMETA.json
Followed by:
C:\sisyphusion\Net-Curl-0.41>make cp lib/Net/Curl/Form.pm blib\lib\Net\Curl\Form.pm cp lib/Net/Curl/Compat.pm blib\lib\Net\Curl\Compat.pm cp lib/Net/Curl/Share.pm blib\lib\Net\Curl\Share.pm cp lib/Net/Curl/examples.pod blib\lib\Net\Curl\examples.pod cp lib/Net/Curl/Multi.pm blib\lib\Net\Curl\Multi.pm cp lib/Net/Curl.pm blib\lib\Net\Curl.pm cp lib/Net/Curl/Easy.pm blib\lib\Net\Curl\Easy.pm Running Mkbootstrap for Curl () "C:\_64\perl530_810\bin\perl.exe" -MExtUtils::Command -e chmod -- 644 +"Curl.bs" "C:\_64\perl530_810\bin\perl.exe" -MExtUtils::Command::MM -e cp_nonemp +ty -- Curl.bs blib\arch\auto\Net\Curl\Curl.bs 644 "C:\_64\perl530_810\bin\perl.exe" "C:\_64\perl530_810\lib\ExtUtils/xsu +bpp" -typemap C:\_64\perl530_810\lib\ExtUtils\typemap -typemap C:\si +syphusion\Net-Curl-0.41\typemap Curl.xs > Curl.xsc "C:\_64\perl530_810\bin\perl.exe" -MExtUtils::Command -e mv -- Curl.xs +c Curl.c gcc -c -Wall -Wno-unknown-pragmas -IC:/_64/msys64/mingw64/include -s + -O2 -DVERSION=\"0.41\" -DXS_VERSION=\"0.41\" "-IC:\_64\perl530_81 +0\lib\CORE" Curl.c In file included from Curl.xs:17: curl-Share-c.inc: In function 'cb_share_lock': C:\_64\perl530_810\lib\CORE/perl.h:174:22: warning: unused variable 'm +y_perl' [-Wunused-variable] # define pTHX tTHX my_perl PERL_UNUSED_DECL ^~~~~~~ C:\_64\perl530_810\lib\CORE/perl.h:185:19: note: in expansion of macro + 'pTHX' # define dTHX pTHX = PERL_GET_THX ^~~~ curl-Share-c.inc:30:2: note: in expansion of macro 'dTHX' dTHX; ^~~~ curl-Share-c.inc: In function 'cb_share_unlock': C:\_64\perl530_810\lib\CORE/perl.h:174:22: warning: unused variable 'm +y_perl' [-Wunused-variable] # define pTHX tTHX my_perl PERL_UNUSED_DECL ^~~~~~~ C:\_64\perl530_810\lib\CORE/perl.h:185:19: note: in expansion of macro + 'pTHX' # define dTHX pTHX = PERL_GET_THX ^~~~ curl-Share-c.inc:40:2: note: in expansion of macro 'dTHX' dTHX; ^~~~ Curl.c: In function 'XS_Net__Curl__Multi_socket_action': Curl.c:1373:15: warning: overflow in conversion from 'long long unsign +ed int' to 'int' changes value from '18446744073709551615' to '-1' [- +Woverflow] sockfd = CURL_SOCKET_BAD; ^~~~~~~~~~~~~~~ "C:\_64\perl530_810\bin\perl.exe" -MExtUtils::Mksymlists \ -e "Mksymlists('NAME'=>\"Net::Curl\", 'DLBASE' => 'Curl', 'DL_FUN +CS' => {}, 'FUNCLIST' => [], 'IMPORTS' => { }, 'DL_VARS' => []);" g++ Curl.def -o blib\arch\auto\Net\Curl\Curl.dll -mdll -s -L"C:\_64\pe +rl530_810\lib\CORE" -L"C:\_64\gcc-mingw-810\mingw64\lib" Curl.o "C: +\_64\perl530_810\lib\CORE\libperl530.a" "C:\_64\msys64\mingw64\lib\li +bcurl.dll.a" "C:\_64\gcc-mingw-810\mingw64\x86_64-w64-mingw32\lib\lib +moldname.a" "C:\_64\gcc-mingw-810\mingw64\x86_64-w64-mingw32\lib\libk +ernel32.a" "C:\_64\gcc-mingw-810\mingw64\x86_64-w64-mingw32\lib\libus +er32.a" "C:\_64\gcc-mingw-810\mingw64\x86_64-w64-mingw32\lib\libgdi32 +.a" "C:\_64\gcc-mingw-810\mingw64\x86_64-w64-mingw32\lib\libwinspool. +a" "C:\_64\gcc-mingw-810\mingw64\x86_64-w64-mingw32\lib\libcomdlg32.a +" "C:\_64\gcc-mingw-810\mingw64\x86_64-w64-mingw32\lib\libadvapi32.a" + "C:\_64\gcc-mingw-810\mingw64\x86_64-w64-mingw32\lib\libshell32.a" " +C:\_64\gcc-mingw-810\mingw64\x86_64-w64-mingw32\lib\libole32.a" "C:\_ +64\gcc-mingw-810\mingw64\x86_64-w64-mingw32\lib\liboleaut32.a" "C:\_6 +4\gcc-mingw-810\mingw64\x86_64-w64-mingw32\lib\libnetapi32.a" "C:\_64 +\gcc-mingw-810\mingw64\x86_64-w64-mingw32\lib\libuuid.a" "C:\_64\gcc- +mingw-810\mingw64\x86_64-w64-mingw32\lib\libws2_32.a" "C:\_64\gcc-min +gw-810\mingw64\x86_64-w64-mingw32\lib\libmpr.a" "C:\_64\gcc-mingw-810 +\mingw64\x86_64-w64-mingw32\lib\libwinmm.a" "C:\_64\gcc-mingw-810\min +gw64\x86_64-w64-mingw32\lib\libversion.a" "C:\_64\gcc-mingw-810\mingw +64\x86_64-w64-mingw32\lib\libodbc32.a" "C:\_64\gcc-mingw-810\mingw64\ +x86_64-w64-mingw32\lib\libodbccp32.a" "C:\_64\gcc-mingw-810\mingw64\x +86_64-w64-mingw32\lib\libcomctl32.a" -Wl,--enable-auto-image-base "C: +\_64\perl530_810\bin\perl.exe" -MExtUtils::Command -e chmod -- 755 bl +ib\arch\auto\Net\Curl\Curl.dll
The build has succeeded (for some definition of "succeeded") but there are some warnings, and the module is unloadable:
C:\sisyphusion\Net-Curl-0.41>perl -Mblib -MNet::Curl -le "print Net::C +url::VERSION;" Curl.c: loadable library and perl binaries are mismatched (got handsha +ke key 0000000010600080, needed 0000000010a00080)
I don't know why that happens, or how to fix it.
The compiler warning about conversion from 'long long unsigned int' to 'int' rings an alarm bell.
And I see places in the generated Curl.c where 'IV' is cast to 'int', which creates a cacophony of alarm bells.

Cheers,
Rob

In reply to Re^6: Can't call libcurl with Inline::C on Windows by syphilis
in thread Can't call libcurl with Inline::C on Windows by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (None)
    As of 2021-10-16 06:24 GMT
    Sections?
    Information?
    Find Nodes?
    Leftovers?
      Voting Booth?
      My first memorable Perl project was:







      Results (69 votes). Check out past polls.

      Notices?